下面是关于C文件读写的完整使用攻略。
一. 文件读写概述
文件读写是指对硬盘中的文件进行读取或写入的操作,主要使用文件指针、文件流、文件模式、文件大小、文件类型等概念和函数来实现。在C语言中,文件读写操作主要通过
二. 文件读写的基本操作
文件读写需要先打开文件,然后读写文件,最后关闭文件,这是基本的文件读写流程。
2.1 打开文件
文件读写通常通过 fopen() 函数打开指定路径下的文件,要注意的是,对于需要读取的文件,必须以读取模式打开;对于需要写入的文件,必须以写入模式打开。
FILE *file_ptr;
file_ptr = fopen("file_path", "mode");
其中,“file_path”表示文件路径,可以是相对路径或绝对路径,“mode”表示文件操作模式,常见的操作模式包括:
- r:以只读方式打开文件,文件必须存在。
- w:以只写方式打开文件,若文件存在则清空文件内容,若不存在则创建新文件。
- a:以追加方式打开文件,若文件不存在则创建新文件。
- r+:以读写方式打开文件,文件必须存在。
- w+:以读写方式打开文件,若文件存在则清空文件内容,若不存在则创建新文件。
- a+:以追加方式读写文件,若文件不存在则创建新文件。
例如,下面的代码打开一个名为 “example.txt” 的文件并以只读方式打开。
FILE *file_ptr;
file_ptr = fopen("example.txt", "r");
if (file_ptr == NULL){
printf("Cannot open file!");
exit(1);
}
2.2 读取文件
打开文件后,我们可以使用常见的读取函数来读取文件的内容,最常见的读取函数是fgetc()、fgets()、fread()和 fscanf()。
下面以fgetc()函数为例,介绍文件读取的基本操作。fgetc() 函数每次读取一个字符,返回读取到的字符的ASCII码,读到文件结尾时返回EOF。
int ch;
FILE *fp = fopen("example.txt", "r");
if (fp == NULL){
printf("Cannot open file!");
exit(1);
}
while((ch = fgetc(fp)) != EOF){
putchar(ch);
}
fclose(fp);
在这个例子中,我们使用了 while 循环逐个读取“example.txt”文件的内容,并将读到的字符输出到控制台。最后使用fclose()函数关闭文件。另外,需要注意的是,每次读取文件需要检查文件是否打开成功,否则会出现错误。
2.3 写入文件
类似读取文件,写入文件的操作也很常见,涉及的常见函数有fputc()、fputs()、fprintf()、fwrite()等。
下面以fputs()函数为例,介绍文件写入的基本操作。fputs() 函数将一个字符串写入文件,并在字符串最末尾添加 \n 换行符。
#include <stdio.h>
int main()
{
FILE *fp = fopen("example.txt", "w");
if (fp == NULL){
printf("Cannot open file!");
exit(1);
}
fputs("Hello World!", fp);
fclose(fp);
return 0;
}
在这个例子中,我们使用了 fputs() 函数将字符串“Hello World!”写入文件“example.txt”。需要注意的是,写入文件也需要检查文件是否打开成功。
三. 文件读写的注意事项
在进行文件读写时,需要特别注意一些事项,以避免出现错误和问题。
3.1 文件指针的使用
文件指针指向文件中的某个位置,通过文件指针可以控制文件读写的位置,涉及到文件指针的函数有 fseek()、ftell() 等。在进行文件读写时,需要特别注意文件指针的位置,以免出现读取或写入文件的位置出现错误。
3.2 内存管理
在进行文件读写时,需要特别注意对于内存的管理,以免出现内存泄漏或内存溢出等问题。同时,在读取或写入大文件时,需要特别注意内存的占用情况,以避免程序崩溃或运行缓慢。
3.3 文件关闭
文件读写完毕后,必须关闭文件以释放资源,文件关闭操作对应的函数为fclose(),释放资源和关闭文件。
四. 实例说明
下面给出两个实例,说明文件读写的基本操作。
4.1 实例1:读取文本文件
该示例用来读取文本文件“example.txt”,并输出文件中的内容。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *file_ptr;
char ch;
file_ptr = fopen("example.txt", "r");
if (file_ptr == NULL){
printf("Cannot open file!");
exit(1);
}
while((ch = fgetc(file_ptr)) != EOF){
printf("%c", ch);
}
fclose(file_ptr);
return 0;
}
文件中的内容如下:
Hello World!
This is an example file.
输出结果如下:
Hello World!
This is an example file.
4.2 实例2:写入文本文件
该示例用来向文本文件“example.txt”写入一段文字,并在换行后写入当前日期和时间。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
FILE *file_ptr;
file_ptr = fopen("example.txt", "a");
if (file_ptr == NULL){
printf("Cannot open file!");
exit(1);
}
fprintf(file_ptr, "\n%s", asctime(localtime(&t)));
fclose(file_ptr);
return 0;
}
输出结果为:
Hello World!
This is an example file.
Sun Mar 7 21:05:26 2021
这个例子中我们使用了 asctime() 函数来获取当前日期和时间,并将其写入到文件中,需要注意的是写入文本文件需要在文件末尾追加内容,因此使用 “a” 模式来打开文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C 文件读写 - Python技术站