c语言文件读写操作有哪些?
前言
在C语言中,我们可以使用多种方式进行文件读写操作。文件读写是与外部设备交互的一种重要方式,通过读写操作,我们可以将程序中的数据存储到文件中,或者从文件中读取数据到程序中进行处理。在本篇文章中,我们将介绍C语言中常用的文件读写操作方式。
1. fopen和fclose函数
fopen函数是用于打开文件的函数,其原型如下:
FILE *fopen(const char *filename, const char *mode);
其中,filename
是要打开的文件名,mode
是表示打开方式的字符串,例如"r"表示只读模式,"w"表示写入模式等。
fclose函数是用于关闭文件的函数,其原型如下:
int fclose(FILE *stream);
其中,stream
是要关闭的文件指针。
下面是一个使用fopen和fclose函数进行文件读写的示例:
#includeint main() { FILE *file = fopen("file.txt", "w"); if (file == NULL) { printf("文件打开失败\n"); return 0; } fprintf(file, "Hello, World!"); fclose(file); return 0; }
2. fprintf和fscanf函数
fprintf函数用于将格式化的数据写入文件,其原型如下:
int fprintf(FILE *stream, const char *format, ...);
其中,stream
是要写入的文件指针,format
是格式化字符串,类似于printf函数。
fscanf函数用于从文件中读取格式化的数据,其原型如下:
int fscanf(FILE *stream, const char *format, ...);
其中,stream
是要读取的文件指针,format
是格式化字符串,类似于scanf函数。
下面是一个使用fprintf和fscanf函数进行文件读写的示例:
#includeint main() { FILE *file = fopen("file.txt", "w"); if (file == NULL) { printf("文件打开失败\n"); return 0; } fprintf(file, "%s\n", "Hello, World!"); fclose(file); file = fopen("file.txt", "r"); if (file == NULL) { printf("文件打开失败\n"); return 0; } char buffer[100]; fscanf(file, "%s", buffer); printf("读取到的内容:%s\n", buffer); fclose(file); return 0; }
3. fread和fwrite函数
fread函数用于从文件中读取数据,其原型如下:
size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
其中,ptr
是接收数据的缓冲区指针,size
是每个数据项的大小,count
是要读取的数据项个数,stream
是要读取的文件指针。
fwrite函数用于将数据写入文件,其原型如下:
size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
其中,ptr
是要写入的数据的指针,size
是每个数据项的大小,count
是要写入的数据项个数,stream
是要写入的文件指针。
下面是一个使用fread和fwrite函数进行文件读写的示例:
#includetypedef struct { int id; char name[20]; } Student; int main() { Student students[3] = { {1, "Tom"}, {2, "Jerry"}, {3, "Alice"} }; FILE *file = fopen("students.bin", "wb"); if (file == NULL) { printf("文件打开失败\n"); return 0; } fwrite(students, sizeof(Student), 3, file); fclose(file); file = fopen("students.bin", "rb"); if (file == NULL) { printf("文件打开失败\n"); return 0; } Student buffer[3]; fread(buffer, sizeof(Student), 3, file); for (int i = 0; i < 3; i++) { printf("学生ID:%d,学生姓名:%s\n", buffer[i].id, buffer[i].name); } fclose(file); return 0; }
总结
C语言中文件读写操作是非常重要的,通过文件读写,我们可以实现数据的持久化存储和与外部设备的交互。本文介绍了常用的文件读写操作方式,包括使用fopen和fclose函数打开和关闭文件、使用fprintf和fscanf函数进行格式化的文件读写以及使用fread和fwrite函数进行二进制文件的读写。掌握这些文件读写操作方式,可以帮助我们更好地处理文件相关的任务。