C语言的文件操作

1. C语言的文件操作

1.1. 打开文件

打开文件应使用fopen函数:

FILE *fopen( const char * filename, const char * mode );

第一个参数是文件名,第二个参数是读写方式,常用的读写方式见下表。

模式 描述
r 打开一个已有的文本文件,允许读取文件。
w 打开一个文本文件,允许写入。若文件不存在,则创建一个新文件。若文件存在,则会被截断为0长度,重新写入。
a 打开一个文本文件,以追加模式写入文件。如果文件不存在,则创建新文件。在这里,文件内容会被追加。
r+ 打开一个文本文件,允许读写。
w+ 打开一个文本文件,允许读写。如果文件已存在,会被截断为0长度。若不存在,会创建一个新文件。
a+ 打开一个文本文件,允许读写。如果文件不存在,则创建新文件。写入是追加模式。

1.2. 关闭文件

关闭文件应使用fclose()函数:

int fclose( FILE *fp );

1.2.1. 打开并关闭文件的例子:

FILE *fp = NULL;
char* filename = "/temp/test.txt";
fp = fopen(filename, "w+");
// 对文件进行操作
fclose(fp);

1.3. 写入文件

下面是把字符写入到流中的最简单的函数:

int fputc(int c, FILE *fp);

1.4. 读取文件

下面是从文件读取单个字符的最简单的函数:

int fgetc(FILE * fp);

也可以使用fscanf函数:

 int fscanf(FILE * stream, const char * format, [argument...])

其功能是从文件stream中根据format格式读取数据,存入到argument中。

需要注意的是,fscanf函数在遇到空格以及换行符时结束。遇到异常情况时,fscanf返回0。

1.5. 读写文件的例题

试编写一个程序,显示指定文本文件的内容,要求每行显示的字符数不超过30个字符。

#include <stdio.h> 
int main() {
    FILE* fp;
    char argument;
    int count = 0;
    char* filename = "res.txt";
    fp = fopen(filename, "r+");
    if (!fp) {
        printf("the file is empty, cannot open it.");
    }
    while (fscanf(fp, "%c", &argument)) {
        count++;
        printf("%c", argument);
        if (argument == '\n') {
            count = 0;
            continue;
        }
        if (count % 30 == 0) {
            printf("\n");
            count = 0;
        }
    }
    fclose(fp);
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。