这个问题在这里已有答案:
我有一个.txt文件,其中包含以下格式的移动对象上的数据
质量大小速度(x)速度(y)速度(z)等
此外,该文件包含一些由字符表示的背景信息,因此
M 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线的方式也是不正确的。你应该在两种情况下使用sscanf()
。