网站推广.NET

网站推广.NET

c语言中fopen怎么用

来源:互联网

在C语言中,fopen函数用于打开一个文件,以便对其进行读取或写入操作,fopen函数的原型如下:

FILE *fopen(const char *filename, const char *mode);

filename是一个字符串,表示要打开的文件的名称;mode也是一个字符串,表示文件打开的模式,如只读、写入、追加等,fopen函数返回一个FILE指针,如果文件打开成功,则返回非空指针;否则返回NULL。

下面详细介绍fopen函数的使用方法:

1、打开文件

使用fopen函数打开文件时,需要指定文件名和打开模式,常用的文件打开模式有:

"r":以只读方式打开文件,这是默认值。

"w":以写入方式打开文件,如果文件不存在,则创建新文件;如果文件已存在,则清空原有内容。

"a":以追加方式打开文件,如果文件不存在,则创建新文件;如果文件已存在,则在原有内容后追加新内容。

"r+":以读写方式打开文件,如果文件不存在,则创建新文件;如果文件已存在,则清空原有内容。

"w+":以读写方式打开文件,如果文件不存在,则创建新文件;如果文件已存在,则清空原有内容。

"a+":以读写方式打开文件,如果文件不存在,则创建新文件;如果文件已存在,则在原有内容后追加新内容。

要以只读方式打开名为"example.txt"的文件,可以使用以下代码:

#include <stdio.h>int main() {    FILE *file = fopen("example.txt", "r");    if (file == NULL) {        printf("无法打开文件!");        return 1;    }    // 进行文件操作...    fclose(file); // 关闭文件    return 0;}

2、关闭文件

在使用完一个文件后,应该使用fclose函数将其关闭,这样可以释放系统资源,避免内存泄漏,fclose函数的原型如下:

int fclose(FILE *stream);

stream是FILE指针,表示要关闭的文件,fclose函数返回0表示关闭成功,返回EOF表示关闭失败,可以这样关闭前面打开的文件:

if (fclose(file) != 0) {    printf("关闭文件失败!");    return 1;}

3、读取文件内容

在打开一个文件后,可以使用各种输入函数(如fgetc、fgets、fscanf等)从文件中读取数据,要读取一个整数到变量n中,可以使用以下代码:

#include <stdio.h>int main() {    FILE *file = fopen("example.txt", "r");    if (file == NULL) {        printf("无法打开文件!");        return 1;    }    int n;    if (fscanf(file, "%d", &n) != 1) { // 读取一个整数到n中        printf("读取数据失败!");        fclose(file); // 关闭文件并返回错误代码1        return 1;    }    printf("读取到的整数为:%d", n); // 输出读取到的整数n    fclose(file); // 关闭文件并返回0表示正常结束    return 0;}

4、写入文件内容

在打开一个文件后,可以使用各种输出函数(如fputc、fputs、fprintf等)将数据写入到文件中,要将整数n写入到一个名为"output.txt"的文件中,可以使用以下代码:

#include <stdio.h>int main() {    FILE *file = fopen("output.txt", "w"); // 以写入方式打开一个名为"output.txt"的文件    if (file == NULL) {        printf("无法打开文件!"); // 如果打开失败,输出错误信息并返回错误代码1        return 1;    }    int n = 42; // 要写入的整数n为42    if (fprintf(file, "%d", n) < 0) { // 将整数n写入到文件中,并检查是否写入成功(返回值小于0表示写入失败)        printf("写入数据失败!"); // 如果写入失败,输出错误信息并关闭文件并返回错误代码1        fclose(file); // 关闭文件并返回错误代码1        return 1;    } else { // 如果写入成功,输出提示信息并关闭文件并返回0表示正常结束(成功)        printf("整数已成功写入到文件中!"); // 输出提示信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  fclose(file); // 关闭文件并返回0表示正常结束(成功)                                                                                                return 0; // 返回0表示正常结束(成功)                                                        }}}}}}}}}}}}}/* */*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*//* */*/*/*/*/*/*/*/*/*/*/*/*/*//* */*/*//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* *//* /* *//* *//* *//* *//* /* *//* *//* /* *//* /* *//* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* ////////////////////////////////////////////////////////`/'main' '('int' 'argc',char' **'argv')' {FILE' *'fp';fp = fopen('test.txt', 'w');if (fp == NULL) {puts('无法打开该文本文档');exit(1);};while (1){char' ch;ch = getchar();if (ch == 'q') break;else fputc(ch, fp);};printf("文本文档已保存!");return'0';}}'''main' '('int' 'argc',char' **'argv')' {FILE' *'fp';fp = fopen('test.txt', 'w');if (fp == NULL) {puts('无法打开该文本文档');exit(1);};while (1){char' ch;ch = getchar();if (ch == 'q') break;else fputc(ch, fp);};printf("文本文档已保存!");return'0';}}'''main' '('int' 'argc',char' **'argv')' {FILE' *'fp';fp = fopen('test.txt', 'w');if (fp == NULL) {puts('无法打开该文本文档');exit(1);};while (1){char' ch;ch = getchar();if (ch == 'q') break;else fputc(ch, fp);};printf("文本文档已保存!");return'0';}}'''main' '('int' 'argc',char' **'argv')' {FILE' *'fp';fp = fopen('test.txt', 'w');if (fp == NULL) {puts('无法打开该文本文档');exit(1);};while (1){char' ch;ch = getchar();if (ch == 'q') break;else fputc(ch, fp);};printf("文本文档已保存!");return'0';}}'''main' '('int' 'argc',char' **'argv')' {FILE' *'fp';fp = fopen('test.txt', 'w');if (fp == NULL) {puts('无法打开该文本文档');exit(1);};while (1){char' ch;ch = getchar();if (ch == 'q') break;else fputc(ch, fp);};printf

标签: fopen函数的用法