This question already has answers here:
Closed last year.
Using fscanf() vs. fgets() and sscanf()
(3个答案)
我有一个.txt文件,其中包含以下格式的移动对象数据
质量尺寸速度(x)速度(y)速度(z)等
此外,这个文件包含一些由字符表示的背景信息,因此
1000米
C 500
我一直在尝试编写代码,根据实际情况读取和排序数据(因此M存储在一个变量中,C存储在另一个变量中,对象的数据存储在正确的数组中)。
目前,我的代码分割错误时,我编译它。我试着用fgets,fscanf,gets和其他任何我能用的方法重新编写它,但是什么都没用。
(3个答案)
我有一个.txt文件,其中包含以下格式的移动对象数据
质量尺寸速度(x)速度(y)速度(z)等
此外,这个文件包含一些由字符表示的背景信息,因此
1000米
C 500
我一直在尝试编写代码,根据实际情况读取和排序数据(因此M存储在一个变量中,C存储在另一个变量中,对象的数据存储在正确的数组中)。
目前,我的代码分割错误时,我编译它。我试着用fgets,fscanf,gets和其他任何我能用的方法重新编写它,但是什么都没用。
while(fgets(data, 50, file))
{
if (data[0] == "M")
{
M = data[1];
}
else
{
fscanf(data,
"%lf %lf %lf %lf %lf",
obj_stat[0],
obj_stat[1],
obj_stat[2],
obj_stat[3],
obj_stat[4],
obj_stat[5]);
}
}
int fclose(univ);
最佳答案
我在这里做些猜测,因为你的代码不完整。但您试图对似乎是字符串的内容使用fscanf
。这是一个错误。
您的fscanf()
还有5个格式说明符,但您传递的是6个参数。在任何情况下你都忘了带上他们的地址。
你对待M线的方式也不正确。在这两种情况下都应该使用&
。
关于c - C读取行并排序数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52250358/