gpt4 book ai didi

无法使用 sscanf 分隔字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 07:42:22 24 4
gpt4 key购买 nike

我有一个相关数字的文本文件,即;
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”是一些随机数,我什至无法弄清楚它来自哪里。
不确定我做错了什么,我们将不胜感激。

最佳答案

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

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

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

char s[10], e[10];

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

关于无法使用 sscanf 分隔字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2507715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com