我有一个相关数字的文本文件,即;
1 2 2
3 2 1
3 4 3
每一行都是一条单独的信息,因此我试图一次读一行,然后将其分成3个数字,但sscanf并没有按照我的预期进行。
char s[5];
char e[5];
char line[100];
int d;
fgets(line, sizeof(line), inFile);
sscanf(line, "%s %s %d", s, e, d);
在fgets yeilds之后加入printf:
1 2 2
然后在sscanf之后,变量's'和'e'为空,而'd'是一些随机数,我甚至无法弄清楚它来自何处。
不确定我做错了什么,非常感谢任何帮助。
答案 0 :(得分:3)
我们确实需要看到你的变量声明,但在d的情况下,你肯定应该传递地址:
sscanf(line, "%s %s %d", s, e, &d);
从您的评论中,您似乎没有正确声明字符串。你想要这样的东西:
char s[10], e[10];
取决于您对字符串的期望值。但是你必须指定一个尺寸。 line
变量应该以类似方式声明。