1. 文件的开启
使用fopen()
函数可以打开指定文件,该函数会在内存中为文件分配一个FILE
结构体区域,并将该结构体的指针返回给程序。此后,程序通过这个FILE
指针对文件进行读写操作。打开文件时,需指定文件名和操作模式(如读、写、读写)。若文件不存在且指定为写模式,则会创建新文件;若文件已存在且指定为写模式,则原有内容会被清空(仅针对写模式)。
c复制代码FILE *fp = fopen("test", "w"); if (fp == NULL) { printf("文件打开失败\n"); exit(1); } else { printf("文件成功打开用于写入\n"); } // ... 文件操作 ... fclose(fp);
在DOS系统中,同时打开的文件数量有限,默认通常为5个,可通过修改CONFIG.SYS
文件来调整。
2. 文件的关闭
完成文件操作后,应使用fclose()
函数关闭文件。此操作确保文件缓冲区中的未写入内容被写入文件,并释放与该文件相关的资源。
c复制代码if (fclose(fp) != 0) { printf("文件关闭失败\n"); exit(1); } else { printf("文件已关闭\n"); }
若需同时关闭多个文件,可使用fcloseall()
函数。
3. 文件的读写
字符读写
fge*()
和 fpu*()
分别用于从文件和向文件写入单个字符。ge*har()
和 pu*har()
是标准输入输出流(stdin和stdout)的简化版本。ge*()
和 pu*()
是fge*()
和fpu*()
的宏定义,功能相同。
fge*()
和 fpu*()
分别用于从文件和向文件写入单个字符。ge*har()
和 pu*har()
是标准输入输出流(stdin和stdout)的简化版本。ge*()
和 pu*()
是fge*()
和fpu*()
的宏定义,功能相同。示例:逐字符读取并显示文件内容。
c复制代码FILE *fp = fopen("myfile.txt", "r"); int ch; while ((ch = fge*(fp)) != EOF) { pu*har(ch); } fclose(fp);
注意:EOF
的值为-1,因此变量ch
应声明为int
类型。
字符串读写
fgets()
读取文件中的一行字符串。fputs()
向文件写入一个字符串。fprintf()
和 fscanf()
分别用于向文件和从文件格式化读写数据。
fgets()
读取文件中的一行字符串。fputs()
向文件写入一个字符串。fprintf()
和 fscanf()
分别用于向文件和从文件格式化读写数据。