关于C语言中文本文件的逐行读取的实现

关于C语言中文本文件的逐行读取的实现,第1张

文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。

以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。

C语言中文本文件的逐行读取的实现的代码如下:

#include<stdioh>

main()

{

FILE fp;

fp=fopen(“noexist”,”a+”);

if(fp= =NULL) return;

fclose(fp);

}

扩展资料

1、如果输入文本每行中没有空格,则line在输入文本中按换行符分隔符循环取值。

2、如果输入文本中包括空格或制表符,则不是换行读取,line在输入文本中按空格分隔符或制表符或换行符特环取值。

3、可以通过把IFS设置为换行符来达到逐行读取的功能。

#include <stdioh> 
#define MAX_LINE 1024 //每行最大字节数
int main() 

    int n=0;
FILE fp; 
char strLine[MAX_LINE]; //读取缓冲区
if((fp = fopen("resulttxt","r")) == NULL) //判断文件是否存在及可读

printf("Open Falied!"); 
return -1; 

while (!feof(fp)) //循环读取每一行,直到文件尾

fgets(strLine, MAX_LINE,fp);     //将fp所指向的文件一行内容读到strLine缓冲区
printf("%s", strLine);     //输出所读到的内容
//DO SOMETHING ELSE

fclose(fp); //关闭文件
printf("\n");
return 0; 
}

用一维数组存的,如果需要用二维数组则用制表符‘\t’拆分就好了。

使用fread函数

 C 标准库 - <stdioh>

描述

C 库函数 size_t fread(void ptr, size_t size, size_t nmemb, FILE stream) 从给定流 stream 读取数据到 ptr 所指向的数组中。

声明

下面是 fread() 函数的声明。

size_t fread(void ptr, size_t size, size_t nmemb, FILE stream)

参数

ptr -- 这是指向带有最小尺寸 sizenmemb 字节的内存块的指针。

size -- 这是要读取的每个元素的大小,以字节为单位。

nmemb -- 这是元素的个数,每个元素的大小为 size 字节。

stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输入流。

返回值

成功读取的元素总数会以 size_t 对象返回,size_t 对象是一个整型数据类型。如果总数与 nmemb 参数不同,则可能发生了一个错误或者到达了文件末尾。

1 打开文件 fopen("需要打开的路径", "打开的模式");

2 使用fgets函数读取行;

3 读取完成后,fclose关闭文件。

参考代码如下:

#include <stdioh>
#include <stdlibh>
#include <stringh>
#define MAX_LINE 1024
int main()
{
 char buf[MAX_LINE];  /缓冲区/
 FILE fp;            /文件指针/
 int len;             /行字符个数/
 if((fp = fopen("testtxt","r")) == NULL)/打开文件/
 {
     printf("fail to read");/打开失败的情况/
     return (1) ;
 }
 while(fgets(buf,MAX_LINE,fp) != NULL)/整行读文件直到文件结束/
 {
 len = strlen(buf);
 printf("%s\n",buf);/输出获取到的数据/
 }
  return 0;
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/13333073.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存