0

我有一个相关数字的文本文件,即;
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 yields 后放入 printf:
1 2 2

但是在 sscanf 之后,变量 's' 和 'e' 为空,而 'd' 是一些我什至无法弄清楚它来自哪里的随机数。
不知道我做错了什么,任何帮助将不胜感激。

4

1 回答 1

3

我们确实需要查看您的变量声明,但在 d 的情况下,您绝对应该传递地址:

sscanf(line, "%s %s %d", s, e, &d);

从您的评论来看,您似乎没有正确声明字符串。你想要这样的东西:

char s[10], e[10];

取决于您期望字符串有多大。但是你必须指定一个大小。该line变量应以类似方式声明。

于 2010-03-24T12:53:27.793 回答