使用while和getline分割输入文件的数据,并将不同的列分配给C中的不同变量

时间:2014-03-10 10:29:51

标签: c file split getline

如何从C中的文件中分割读取的行,并将不同列的值分配给不同的变量?

我有一个.txt文件,其中每行包含4个由制表符分隔的整数值。 我必须在某个变量中存储第一个值,比如a 另一个变量的第二个值,比如b 另一个变量的第三个值,比如c。

然后将a,b和c作为参数传递给函数。

然后从文件中读取下一行并执行与上面相同的操作直到文件结束。 我正在尝试使用getline。

输入文件有这种数据:

1   2   3   4   
7   4   3   2
3   2   5   4
2   98  876 989

在一次迭代中

我想要

 a=1
 b=2
 c=3
 int r=func(a,b,c)
 //some code based on the value of r, such as writing this to a file.

现在阅读下一行      一个= 7      B = 4      C = 3

再次调用函数。 Q1。如何分割数据?

Q2。如何分配不同的变量?

但是无法想出任何令人满意的解决方案。你能帮帮我吗?

谢谢:)

1 个答案:

答案 0 :(得分:0)

直接从您可以使用的文件中将数据放入变量

fscanf(file,"%d %d %d",a,b,c);

您的输入文件有4个数字,因此您需要忽略它以便使用,

while(fscanf(file,"%d %d %d %d\n",a,b,c,d)==4)
{

 r=func(a,b,c);
 //some code using value of r
}

您可以使用与此类似的代码