使用fopen函数打开和读取文件的示例
fopen函数是C语言中常用的文件操作函数,其功能是打开文件并返回一个指向该文件的文件指针。通过使用这个指针,我们可以对文件进行读取、写入、关闭等操作。
下面是使用fopen函数打开和读取文件的示例。
1. 打开文件
打开文件的函数原型为:
FILE *fopen(const char *filename, const char *mode);
其中,filename是要打开的文件名,mode为打开文件的模式。mode参数有以下选项:
- "r": 读取模式,打开文件用于读取。
- "w": 写入模式,打开文件用于写入。如果文件不存在,将创建一个空文件;如果文件已经存在,则会清空文件原来的内容。
- "a": 追加模式,打开文件用于写入。如果文件不存在,将创建一个空文件;如果文件已经存在,则新数据将被追加到文件末尾。
- "r+": 读写模式,打开文件用于读取和写入。
- "w+": 读写模式,打开文件用于读取和写入。如果文件不存在,将创建一个空文件;如果文件已经存在,则会清空文件原来的内容。
- "a+": 追加读写模式,打开文件用于读取和写入。如果文件不存在,将创建一个空文件;如果文件已经存在,则新数据将被追加到文件末尾。
下面是一个示例,演示如何使用fopen函数打开文件:
#include <stdio.h>
int main () {
FILE *fp;
fp = fopen("example.txt", "r");
if (fp == NULL) {
printf("File does not exist.");
return 1;
}
// 文件操作
fclose(fp);
return 0;
}
在上面的示例中,我们首先使用fopen函数打开文件example.txt,并将返回的文件指针赋值给指针变量fp。如果文件不存在,fopen函数将返回NULL。因此我们需要对返回值进行检查,以确保文件已成功打开。
2. 读取文件
读取文件的函数包括fgetc、fgets和fread等。这些函数的返回值是读取到的字符或字符串。下面是使用fgets函数读取文件的示例:
#include <stdio.h>
int main () {
FILE *fp;
char str[100];
fp = fopen("example.txt", "r");
if (fp == NULL) {
printf("File does not exist.");
return 1;
}
while (fgets(str, 100, fp) != NULL) {
printf("%s", str);
}
fclose(fp);
return 0;
}
在上面的程序中,我们使用fgets函数读取文件example.txt中的内容,并输出到控制台。fgets函数读取的是一行字符串, 个参数是用于存储读取结果的字符串变量,第二个参数是读取的最大字符数,第三个参数是文件指针。fgets函数在遇到文件末尾或读取到指定字符数之后会返回NULL,因此我们通过在while循环中检查返回值来结束读取。
3. 关闭文件
完成文件操作后,需要使用fclose函数关闭文件。fclose函数的原型如下:
int fclose(FILE *stream);
其中stream是要关闭的文件指针。如果关闭成功,函数将返回0;如果关闭失败,则返回EOF。
下面是一个示例,演示如何使用fclose函数关闭文件:
#include <stdio.h>
int main () {
FILE *fp;
char str[100];
fp = fopen("example.txt", "r");
if (fp == NULL) {
printf("File does not exist.");
return 1;
}
while (fgets(str, 100, fp) != NULL) {
printf("%s", str);
}
fclose(fp);
return 0;
}
