Linux下C编程读取文件中每行的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下C编程读取文件中每行的数据相关的知识,希望对你有一定的参考价值。

我现在有一个txt文件,格式大概是这样的
2 3 5
4 3 5
2 1 3
6 7 8
现在我想将每一竖列读到相应的数组中。例如a[4]数组中希望是2,4,2,6.b[4]数组中存3 3 1 7,c[4]数组中存5 5 3 8这个样子
现在我想就读入每一行的数字,比如这行有a 2 4 3.然后我希望这个数组存的是2 4 3

参考技术A 实话是,使用C如此操作是比较复杂的,步骤如下:
1、自我实现
首先需要将所有的文件读取到内存中,之后进行适当的处理,可以定义一个函数,函数的形参是四个三维数组,或者一个4*3的二维数组,之后的操作相当于矩阵的转矩3 * 4。
2、借助三方包
上面说了这其实就是一个矩阵的转矩,那么可以使用第三方的实现矩阵相关运算的库文件。追问

其实我是想问要怎么读入数据,哪个函数是可以将每一行的数据分别读进去的?比如第一行,我想得到2,3,5三个数,如何得到?

追答

scanf这个函数就可以,只是需要输入的格式,中间的空格不能省略。可以使用getline函数,或者gets函数,但是需要你处理字符串,以及和整型之间的转换操作。
scanf("%d %d %d", &a, &b, &c);

本回答被提问者和网友采纳

delphi中怎么逐行读取文本文件的数据并将每行分别写入指定的不同编辑框

参考技术A FileName:string;
f:Textfile;
s:string;

FileName:='C:\this.log';
AssignFile(f,FileName);//关联文件
Reset(f);
Readln(f,s); //读一行
memo1.Lines.Add(s); //写到MEMO1
ReadLn(f,s); //再读一行
memo2.Lines.Add(s);//写到MEMO2
CloseFile(f);//关闭追问

如果数据比较多的话,操作好像很麻烦

追答

给编辑框定一个命名规则,然后根据这个规则写入,举例,编辑框名为t1,t2,t3.......
容器为Panel1
t+循环变量 形成控件名称
edit := Panel1.FindChildControl(控件名称) as TEdit ;
if(edit null) then edit.Text:= txt中读出的数据

本回答被提问者采纳
参考技术B Readln 参考技术C 读取文件比较简单,但你要求的写入不同编辑框有点歧义:是你当前自己编写的窗口上的编辑框吗?追问

恩,比如说我非常第一行要写入EDIT1,第二行要写入EDIT2。我现在一个一个写可以实现,但如果数据多的,那量就非常大了

追答

说下思路:

1. 用TStringList载入文本文件。
2. 循环读取每行内容,并写入指定的编辑框。

小提示:如果你每行文本内容对应的编辑框都是指定的不同编辑框,那么建议在文本的每行除了内容之外,还需要保存编辑框的名称。

以上是关于Linux下C编程读取文件中每行的数据的主要内容,如果未能解决你的问题,请参考以下文章

Linux C语言怎么读取文件指定行内容

linux下c语言编程read()函数的问题

c语言读取文件名问题

C语言中如何将文件中的数据读取到链表中

Linux shell基础

Linux C/C++文本文件操作