【发布时间】:2015-11-28 07:47:16
【问题描述】:
我有一个文件,它包含三列(传感器的读数),长度不一,例如。
-728 -233 3947
4258 -623 333
-500 93 -4141
-491 107 -4136
-495 94 -4161
-886 101 -4148
-2555 1864 -4888
我使用fgets 读取该行。但我想将第一列读为 x,第二列读为 y,第三列读为 z。即使我使用空格作为检测新子字符串的标记,这也不能解决我的问题,因为每一行都有不同的列数字长度。关于如何做的任何想法?我正在粘贴从文件中读取行并尝试将三个子字符串打印为三个数组元素的代码的 sn-p。
char *arr_x, *arr_y, *arr_z;
fp = fopen(filename, mode);
while(! feof(fp))
{
if( fgets (str, 60, fp)!=NULL )
{
strncpy(arr_x, str, ' ');
strncpy(arr_y, str, ' ');
puts(str);
}
}
【问题讨论】:
-
str声明在哪里? -
str 被声明为 char str[60];我只是想只粘贴从文件中读取的逻辑。谢谢 Sourav Ghosh!
-
建议:
int x, y, z; ... while(fgets (str, 60, fp)!=NULL){ sscanf(str, "%d %d %d", &x, &y, &z); }