C 文件读写学习笔记
1. 文件操作概述
在C语言中,要完成对文件的操作需要使用到stdio.h
中提供的一系列函数。文件操作主要包括以下几个步骤:
- 打开文件
- 对文件进行读/写操作
- 关闭文件
2. 打开文件
打开文件需要使用fopen()
函数。其语法如下:
cCopy CodeFILE *fopen(const char *filename, const char *mode);
其中,filename
表示要打开的文件名称,mode
表示文件打开的模式。mode
参数有以下几种可能值:
- "r": 以只读方式打开文件
- "w": 以写方式打开文件,如果文件不存在,则创建一个新的文件;否则清空文件中的内容
- "a": 以追加写入方式打开文件,如果文件不存在,则创建一个新的文件
例如,要以只读方式打开名为test.txt
的文件,可以这样使用fopen()
函数:
cCopy CodeFILE *fp = fopen("test.txt", "r");
if (fp == NULL) {
printf("File open failed!\n");
return -1;
}
3. 对文件进行读/写操作
3.1 读取文件内容
读取文件内容需要使用fscanf()
函数或fgets()
函数。fscanf()
函数可以按照指定的格式从文件中读取数据,而fgets()
函数则是按行读取文件内容。
举个例子,如果要从打开的文件中读取一个整数,可以这样使用fscanf()
函数:
cCopy Codeint num;
fscanf(fp, "%d", &num);
如果要按行读取文件内容,则可以这样使用fgets()
函数:
cCopy Codechar line[1024];
while (fgets(line, 1024, fp) != NULL) {
printf("%s", line);
}
3.2 写入文件内容
写入文件内容需要使用fprintf()
函数或fputs()
函数。fprintf()
函数可以按照指定的格式将数据写入文件,而fputs()
函数则是写入一行文本。
举个例子,如果要向打开的文件中写入一个整数,可以这样使用fprintf()
函数:
cCopy Codeint num = 123;
fprintf(fp, "%d", num);
如果要写入一行文本,则可以这样使用fputs()
函数:
cCopy Codechar *str = "Hello world!";
fputs(str, fp);
4. 关闭文件
完成文件操作后,需要使用fclose()
函数关闭文件。其语法如下:
cCopy Codeint fclose(FILE *stream);
其中,stream
表示要关闭的文件句柄。举个例子,在打开文件并读取完文件内容后,可以这样关闭文件:
cCopy Codefclose(fp);
5. 完整示例
下面是一个完整的示例,演示了如何打开一个文件、写入和读取数据,并最终关闭文件:
cCopy Code#include <stdio.h>
int main() {
FILE *fp = fopen("test.txt", "w");
if (fp == NULL) {
printf("File open failed!\n");
return -1;
}
int num = 123;
fprintf(fp, "%d\n", num);
char *str = "Hello world!";
fputs(str, fp);
fclose(fp);
fp = fopen("test.txt", "r");
if (fp == NULL) {
printf("File open failed!\n");
return -1;
}
fscanf(fp, "%d", &num);
printf("Read num: %d\n", num);
char line[1024];
while (fgets(line, 1024, fp) != NULL) {
printf("%s", line);
}
fclose(fp);
return 0;
}
该示例打开test.txt
文件,先将数字123
和文本Hello world!
写入文件中,并在读取文件内容时先读取数字、再按行读取文本。