若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
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;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)