文件操作总结

Posted coderjiebao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件操作总结相关的知识,希望对你有一定的参考价值。

1. 打开文件

函数定义:FILE *fopen(char *pname, char *mode)

函数说明:pname 是文件名,mode 是打开文件的方式( r:只读,w:只写)

返回值:若返回 NULL,则打开失败。

 

2. 关闭文件

函数定义:int fclose(FILE *stream)

函数说明:stream 为指向 FILE 对象的指针

返回值:若返回 0,则关闭成功。

 

3. 读取一个字符

函数定义:int fgetc(FILE *stream)

函数说明:stream 为指向 FILE 对象的指针

返回值:若返回 EOF,则读取失败。

 

4. 写一个字符到文件中

函数定义:int fputc(int char, FILE *stream)

函数说明:char 为要写入的字符,以整形传递;stream 为指向 FILE 对象的指针

返回值:若返回 EOF ,则写入失败。

 

下面使用上面函数实现功能,将一个文件的内容复制到另一个文件中去。代码如下:

 1 /*
 2     文件操作:将一个文件的内容复制到另一个文件中去 
 3 */
 4 
 5 #include <stdio.h>
 6 
 7 int main() {
 8     int ch;
 9     FILE *in, *out;            // 指向输入、输出文件的指针
10     // 文件打开失败 
11     if((in=fopen("in.txt", "r"))==NULL || (out=fopen("out.txt", "w"))==NULL) {
12         return;
13     } 
14     ch = fgetc(in);            // 输入一个字符 
15     while(ch != EOF) {
16         fputc(ch, out);        // 写入一个字符 
17         ch = fgetc(in);        // 继续输入 
18     }
19     fclose(in);                // 关闭文件流 
20     fclose(out);
21 
22     return 0;
23 }

 

 

5. 读取一个字符串

函数定义:char *fgets(char *str, int n, FILE *stream)

函数说明:str 储存输入的字符串,n 表示读取 n-1 个字符,stream 为指向 FILE 对象的指针

返回值:若返回 NULL,则表示没有任何输入。

 

6. 往文件中写格式化数据

函数定义:int fprintf(FILE *stream, const char *format, ...)

函数说明:与 printf 函数差不多,stream 为指向 FILE 对象的指针

返回值:如果成功,则返回写入的字符总数,否则返回一个负数。

 

7. 读取格式化数据

函数定义:int fscanf(FILE *stream, const char *format, ...)

函数说明:与 scanf函数差不多,stream 为指向 FILE 对象的指针

返回值:如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF。

 

用上面介绍的函数可实现文件的格式化输入和输出,代码如下:

 1 /*
 2     文件操作:文件的格式化输入和输出 
 3 */
 4 
 5 #include <stdio.h>
 6 
 7 int main() {
 8     int id, age;        // 号次、年龄 
 9     char name[10];        // 姓名 
10     FILE *in, *out;        // 指向输入、输出文件的指针
11     // 打开文件失败 
12     if((in=fopen("in.txt", "r"))==NULL || (out=fopen("out.txt", "w"))==NULL) {
13         return;
14     }
15     // 按格式输入 
16     while(fscanf(in, "%d %s %d", &id, name, &age) != EOF) {
17         // 按格式输出 
18         fprintf(out, "id = %04d, name = %s, age = %02d\n", id, name, age);
19     }
20 
21     return 0;
22 }

 

以上是关于文件操作总结的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode 如何操作用户自定义代码片段(快捷键)

线程学习知识点总结

BootStrap有用代码片段(持续总结)

BootStrap实用代码片段(持续总结)