我如何正确使用sscanf?

时间:2015-10-09 03:38:27

标签: c scanf

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

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

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

请注意

  • zombies [i] .hour,

  • zombies [i] .min和

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

    具体元素是整数。

编译器说我是在没有强制转换的情况下从一个整数制作指针。

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

1 个答案:

答案 0 :(得分:3)

就像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);

没有任何意义。