3.2 新建文件写入数据

经过前面的学习,我们知道如何从一个文件中读取数据。那么,下面,我们学习怎么样往一个文件中写入数据。C语言提供了fwrite()函数,用于往一个打开的文件指针中写入数据。函数的定义如下:

size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );

函数说明:函数往stream文件指针指向的文件写入数据,要写入的数据存放在ptr缓存中。写入size个数据块,每个数据块的容量是count个字节。所以,总共写入的字节数是size*count个字节。

返回值:返回成功写入的数据块个数。注意:不是实际写入的字节数,是参数size表示的数据块个数。

程序测试例子如下:

c语言文件的读取和写入函数有哪些(C语言如何读写文件)(1)

运行程序完成之后,程序创建test.txt文件,并把 "mylinux.vip\n" 字符串写入test.txt文件中。所以,可以查看test.txt文件的内容如下:

c语言文件的读取和写入函数有哪些(C语言如何读写文件)(2)

可以看到,最终,调用fwrite()可以往文件中写入数据。打开文件的时候,想对文件进行写入数据的操作,所以,fopen()函数的第二个参数用"w "模式,表示对文件进行写入操作。

3.3 打开文件追加数据

在上面的例子中,我们编译出exe程序,每次执行,都往test.txt文件中写入"mylinux.vip\n" 字符串。

但是,执行 3 次exe程序,写入的test.txt文件只有一个"mylinux.vip\n" 字符串。因为,每次调用fwrite()函数写入数据的时候,把文件保存的给清除了。

那么,我们应该怎么样操作,可以在调用fwrite()函数的时候,把新写入的数据,追加到文件末尾,而不是清除文件原来的内容?

要实现这个操作,可以在调用fopen()函数打开文件的时候,使用"a"模式,对写入的文件进行“追加”操作。程序测试例子如下:

c语言文件的读取和写入函数有哪些(C语言如何读写文件)(3)

编译程序,运行程序3次。然后,查看 test.txt 文件的内容如下:

c语言文件的读取和写入函数有哪些(C语言如何读写文件)(4)

可以看到,编译出exe可执行程序之后,连续执行3次exe程序。最终,查看test.txt文件的数据,是累加输出的3行" mylinux.vip"字符串。每次执行exe程序,调用fwrite()往文件写入的数据,都是追加到文件的末尾。

,