如何正确使用 sscanf?

How do I use sscanf properly?

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

sscanf("%d:%d:%d", zombies[i].hour, zombies[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);

这毫无意义。