我有一个.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);
答案 0 :(得分:2)
由于您的代码不完整,我将在这里进行一些猜测。但是,您正在尝试在似乎是字符串的地方使用fscanf
。那是一个错误。
您的fscanf()
也有5个格式说明符,但是您要传递六个参数。而且您忘记了在每种情况下都用&
带走他们的地址。
您对待M线的方式也不正确。两种情况下都应使用sscanf()
。