C语言文件部分数据修改(C语言用什么函数修改文件内容?)

今天给大家分享一些C语言文件的数据修改知识,修改C语言文件的内容会用到哪些函数?说明一下,如果你恰好解决了你现在面临的问题,别忘了关注这个网站,现在就开始!

这篇文章的列表: 1、如何用C语言修改文件内容? 2.如何用C语言操作文件,用特定的内容替换部分文件? 3.如何用C语言修改文件中的一些数据? 4.在C语言中,如何修改文件中的相关数据信息? 如何在C语言中修改文件内容 1.fopen()

fopen的原型是:file * fopen (constchar * filename,constchar * mode),实现了三个功能:打开一个流使用,连接一个文件与这个流,返回一个指向这个流的FILR指针。

参数filename指向要打开的文件名,mode表示打开状态下的字符串,其值如下:

字符串含义

“r”以只读方式打开文件。

“w”以只写方式打开文件。

“a”以追加方式打开文件。

" r "以读/写模式打开文件,如果没有文件错误。

“w”以读/写模式打开文件,如果没有文件,则生成一个新文件。

文件可以以文本模式或二进制模式打开。两者的区别在于,在文本模式下,回车视为一个字符' \n ',而在二进制模式下,则视为两个字符0x0d 0x0D,0x0A如果在一个文件中读取0x1B,文本模式会认为这是文件的结尾,即二进制模型不会对文件进行处理,文本模式会按照一定的方式对数据进行相应的转换。

默认情况下,系统以文本模式打开。可以修改所有变量_fmode的值来修改这个设置,例如_ fmode = O _ TEXT默认打开模式设置为文本模式;And _ fmode = O _ BINARY默认打开模式设置为二进制模式。

我们也可以在模式字符串中指定打开模式,例如“rb”表示以二进制模式打开只读文件,“w t”或“wt”表示以文本模式打开读/写文件。

这个函数返回一个文件指针,所以在声明一个文件指针后不需要初始化,而是使用fopen()返回一个指针并连接到一个特定的文件,成功或失败返回NULL。

示例:

以下是一段引文片段:

FILE * fp

if(fp=fopen("123.456 "," wb "))

Puts("文件打开成功");

其他

Puts("打开文件的成功或失败");

2.fclose()

fclose()的作用是关闭用fopen()打开的文件,其原型是:int fclose(FILE * FP);如果成功,则返回0,如果失败,则返回EOF。

记得在程序结束时关闭打开的文件,否则可能会造成数据丢失。我以前经常犯这样的错误。

例子:fclose(FP);

3.fputc()

写一个字符到流中,原型是int fputc(int c,FILE * stream);该字符成功返回,失败则返回EOF。

例如:fputc('X ',FP);

4.fgetc()

从流中读取一个字符,原型是int fputc(FILE * stream);该字符成功返回,失败则返回EOF。

例如:char ch1 = fgetc(FP);

5.fseek()

这个函数一般用在以二进制模式打开的文件中,它的作用是定位到流中的指定位置。原型是int fseek (file * stream,long offset,int theywhere);如果成功返回0,参数offset为移动的字符数,whence为移动的基准,取值为:

符号常量值参考位置

SEEK_SET 0文件的开始

SEEK_CUR 1当前读写位置。

SEEK_END 2文件的结尾

例如:fseek(fp,1234L,SEEK _ CUR);//从当前位置向后移动读/写位置1234个字节(L后缀表示长整数)

fseek(fp,0L,2);//将读写位置移动到文件末尾

6.fputs()

将一个字符串写入流中,prototype int fputs (constchar * s,file * stream);

例如:fputs(“我爱你”,FP);

7.fgets()

从流中读取一行或指定一个字符,原型为char * fgets (char * s,int n,file * stream);从流中读取n-1个字符。除非读取一行,否则使用参数S来接收字符串。如果成功,将返回一个指向S的指针,否则返回NULL。

示例:如果文件当前位置的文本如下所示:

爱,我有

但是……..

如果你使用

fgets(str1,4,file 1);

然后str1="Lov "执行后,读取4-1=3个字符,如果使用

fgets(str1,23,file 1);

然后执行str="Love,I Have "并读取一行(包括行尾的' \n ')。

8.fprintf()

按照格式输入到流中,其原型为int fprintf (file * stream,constchar * format C语言)。如何修改文件中的一些数据? 如果文件很短,可以全部读入内存,修改后写入文件。

如果文件很大,没有什么好办法。只能将原文件修改后的内容写入新文件,然后删除原文件,重新命名。

在C语言中,如何修改文件中的相关数据信息? 三种方法:

(1)将文件中的数据读入内存,修改后清空源文件,存储新数据。

(2)读写打开文件,将文件指针移动到要修改的地方,写入新数据。新数据将覆盖旧数据。

(3)读写打开文件,将文件指针定位到要修改数据的末尾,然后删除要修改的数据(通过执行fputc(8,FP)n次,直到要修改的数据被清除。

8是退格键对应的ascii码)。

然后计算要添加的新数据长度,通过fputc(32,fp)给文件添加空格(32是空格键的ascii)。

然后根据指针的位置,填入数据覆盖这些空格。

第一种方法适用于小数据,

后两种情况适合大数据,但是程序写起来比较麻烦,用心写代码也不会花很长时间。哈哈。

对于C语言文件中一些数据修改的介绍就足够了。感谢您花时间阅读本网站的内容。C语言中用什么函数修改文件内容?别忘了在这个网站上查一些C语言文件的数据修改信息。

相关文章

发表新评论