C语言如何用fread()和fwrite()实现对文本文件的整行读写呢,文本文件中每一行的字符个数不一定相同
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言如何用fread()和fwrite()实现对文本文件的整行读写呢,文本文件中每一行的字符个数不一定相同相关的知识,希望对你有一定的参考价值。
fread()和fwrite()主要是用来读写二进制文件的。如果是文本文件建议使用fprintf()和fscanf()
如果一次读取一行,用fgets()最方便了。 参考技术A 最好用fgets()来读取一行,该函数自动读取一行。
写的时候你就可以自己随意定啦!你在buf后面加个换行符'\n'就行了,fwrite()就会自动换行了。
比如:
FILE* fp = fopen("c:\\test.txt","rw"); //打开文件
if( fp == NULL )
return;
char achBuf[256] = 0;
fgets( achBuf,fp ); //读取一行,直到遇到换行符结束
memset( achBuf,0,256 );
strcpy(achBuf,"Hello,world!\n"); //内容随意,别忘了加个换行符
fwrite( achBuf,1,strlen(achBuf)+1,fp ); //写入一行
fclose(fp); //关闭文件本回答被提问者和网友采纳
c语言中fgets 、fputs、fread、fscanf、fseek的区别和作用
fread:是读取数据fwrite:是写入数据
1.函数功能
用来读写一个数据块。
2.一般调用形式
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
3.说明
(1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。
(2)size:要读写的字节数;
(3)count:要进行读写多少个size字节的数据项;
(4)fp:文件型指针。
注意:1
完成次写操(fwrite())作后必须关闭流(fclose());
2
完成一次读操作(fread())后,如果没有关闭流(fclose()),则指针(file
*
fp)自动向后移动前一次读写的长度,不关闭流继续下一次读操作则接着上次的输出继续输出;
3
fprintf()
:
按格式输入到流,其原型是int
fprintf(file
*stream,
const
char
*format[,
argument,
...]);其用法和printf()相同,不过不是写到控制台,而是写到流罢了。注意的是返回值为此次操作写入到文件的字节数。如int
c
=
fprintf(fp,
"%s
%s
%d
%f",
str1,str2,
a,
b)
;str1:10字节;str2:
10字节;a:2字节;b:8字节,c为33,因为写入时不同的数据间自动加入一个空格。
4.fscanf
和
scanf
相似
:当能正常读入数据时,
fscanf
返回读入数据的个数,否则返回
eof
。 参考技术A fgets()从文件读取一个字符串
fputs()将一个字符串输出到文件
fread()从文件以二进制方式读取数据
fscanf()是scanf()的文件版本
fseek()将文件指针定位到文件中需要的位置本回答被提问者采纳
以上是关于C语言如何用fread()和fwrite()实现对文本文件的整行读写呢,文本文件中每一行的字符个数不一定相同的主要内容,如果未能解决你的问题,请参考以下文章
c语言中fgets 、fputs、fread、fscanf、fseek的区别和作用
C 语言文件操作 ( 使用 fread 和 fwrite 实现二进制文件的拷贝 | stat 统计文件大小 | feof 判定文件结尾 )