c - 如何正确使用 sscanf?

标签 c scanf

我相信这是唯一相关的信息:

sscanf("%d:%d:%d", zombies[i].hour, zombies[i].min, zombies[i].sec);

这显然是错误的。我不确定为什么。我已尝试阅读联机帮助页,显然我需要格式化,但我不明白如何。

注意

  • 僵尸[i].hour,

  • 僵尸[i].min 和

  • zombies[i].sec 来自结构数组,

    具体的元素是一个整数。

编译器说我正在从一个没有转换的整数中创建一个指针。

这是什么意思?如何正确使用它?

最佳答案

就像scanf一样,您需要传递sscanf可以用来存储读取值的指针。您还必须传递一个字符串以从中读取值。

sscanf("1:2:3", "%d:%d:%d", &zombies[i].hour, &zombies[i].min, &zombies[i].sec);

如果你不传递一个指针,你只是传递一个值,所以如果 zombies[i].hour 的当前值恰好是 45,例如,它会类似于:

scanf("%d", 45);

这没有意义。

关于c - 如何正确使用 sscanf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33029519/

相关文章:

c - GCC/SDL2 无限期挂起并停止响应

java - 可以将 Java 数组传递给采用数组的 C/C++ 函数吗?

c - 为什么为 scanf 输入添加多个句点会跳过下一个 scanf 函数?

c - 在 C 中使用指针的 Scanf

c - scanf 的异常行为

c - 规则 14.2 for 循环应符合 MISRA C 2012 的格式

c - 如何分割一个字符?

c - 如何在结构中声明一个包含 const int 项的数组

C scanf() 返回 -1

C 编程 scanf 上的段错误