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

标签 c file split getline

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

我有一个 .txt 文件,其中每行包含 4 个由制表符分隔的整数值。 我必须将第一个值存储在某个变量中,例如 另一个变量中的第二个值,例如 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.

现在阅读下一行 a=7 b=4 c=3

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

第二季度。如何分配给不同的变量?

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

谢谢:)

最佳答案

将数据直接从您可以使用的文件中添加到变量中,

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
}

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

关于c - 在 C 中使用 while 和 getline 分割输入文件的数据并将不同的列分配给不同的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22297699/

相关文章:

c - 如何正确地制定计数算法来从文件中计数?

apache-spark - 从 pyspark 中的数据框列中删除最后一个竖线分隔值

java - 在 Java 中读取 CSV 的正则表达式

python - 正则表达式在 Python 中拆分单词

c - C 中的暂停和恢复循环

c++ - 使用 select() 从多个使用 UDP 套接字的对等方接收,同时从 STDIN 获取用户输入

c - 读取一行时忽略空格或换行符

c - 如何使字符缓冲区充当文件?

java - 通用标志的 Android 2.3 ZIP 问题

java - 如何在 Eclipse 中使用相对路径读取和打印文件?