如何正确使用sscanf?
我相信这是唯一相关的信息:如何正确使用sscanf?,c,scanf,C,Scanf,我相信这是唯一相关的信息: sscanf("%d:%d:%d", zombies[i].hour, zombies[i].min, zombies[i].sec); 这显然是错误的。我不知道为什么。我试过阅读手册页,显然我需要格式化,但我不明白怎么做 注意 僵尸[i].小时 僵尸[i].min和 僵尸[i].sec来自一系列结构 特定的元素是一个整数 编译器说我是从没有强制转换的整数生成指针 这是什么意思?如何正确使用它?就像scanf一样,您需要传递sscanf
sscanf("%d:%d:%d", zombies[i].hour, zombies[i].min, zombies[i].sec);
这显然是错误的。我不知道为什么。我试过阅读手册页,显然我需要格式化,但我不明白怎么做
注意
- 僵尸[i].小时
- 僵尸[i].min和
- 僵尸[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);
这毫无意义。什么是僵尸
等等?很抱歉没有早点回复!谢谢如果根据问题标题寻求“正确使用sscanf”,另一个好的做法是-如果有任何方法无法解析-将sscanf
返回值与预期的转换次数进行比较:if(sscanf(…)==3)…使用解析值。。。否则…报告/处理错误代码>