数据文件可以分为:文本文件和二进制文件
编译器:将.c和.cpp的文件转换成二进制.obj(也就是外部文件夹中的源文件)
![](https://img.haomeiwen.com/i14491816/78a08e3f769d6c5d.png)
操作数据文件
![](https://img.haomeiwen.com/i14491816/adc4692f7d3cf81e.png)
文件打开方式:
![](https://img.haomeiwen.com/i14491816/f8f8becbce61ca56.png)
![](https://img.haomeiwen.com/i14491816/6fbd44bb5006e29a.png)
这种情况说明是指向成功的,如果打开文件的时候没有文件,会自动创建文件。
写入数据
单个字符:fputc
字符串:fputs
![](https://img.haomeiwen.com/i14491816/5772e4ab08e9d73b.png)
读取数据
单个字符:fgetc(包括换行)
字符串:fgets
1.读取单个字符
例:![](https://img.haomeiwen.com/i14491816/4c638f6bb0d82ea2.png)
读取的时候如果读取单个字符那么是按照顺序读取的。
2.读取字符串
例:![](https://img.haomeiwen.com/i14491816/d0a11419c8fe58a5.png)
注:如果txt里面中文出现乱码,将txt文件另存为并且保存时最下面utf-8改成ascll码。
3.读取整个文件
![](https://img.haomeiwen.com/i14491816/3cd8454ec24239aa.png)
格式化输出(fprintf)(写入)
![](https://img.haomeiwen.com/i14491816/b957990bd935cae6.png)
格式化输入(fscanf)(读取)
![](https://img.haomeiwen.com/i14491816/bfc5134e52abc580.png)
二进制形式写入(fwrite)
![](https://img.haomeiwen.com/i14491816/81465f709b5de869.png)
wb表示二进制的写入,文件总大小等于写入的字节大小*写入的个数
二进制的形式读取(fread)
![](https://img.haomeiwen.com/i14491816/59ff26ab7f8fc486.png)
rb表示二进制的读取,以上输出的值为10。
文件指针的偏移(fseek)
例:![](https://img.haomeiwen.com/i14491816/8f8ac45a1c32433b.png)
多一位是因为有\0。
![](https://img.haomeiwen.com/i14491816/a0e0015fd28cc2a5.png)
fseek将指针移动到了4的位置,然后添加字符会覆盖掉原本的字符。
网友评论