c fopen文件处理是每一种编程语言的基本部分。在几乎每个应用程序中,文件被用来保存数据或信息,这些数据或信息可以是输入、输出、数据库表信息或完成应用程序过程所需的重要数据。因此,学习文件处理是非常重要的。在文件中,数据以字节序列的形式保存。在软件应用程序中读取文件内容并将其写入文件的过程称为“文件输入/输出”(file Input and Output)。C编程语言在一个名为“stdio.h”的C标准库头文件中为文件I/O提供了许多标准库函数。一些重要的文件I/O函数是' fopen ', ' fclose ', ' fread ', ' fwrite ', ' fgets ', ' fputs ', ' fscanf '和' fprintf '。要启动任何文件I/O操作,第一个用来打开文件进行读写的方法是C ' fopen '方法。

想要更多地学习C语言吗?更多信息请访问Udemy.com。

什么是C fopen方法?

C ' fopen '方法是Unix操作系统中系统调用' open '的高级包装器。根据指定的方式创建文件或对现有文件执行文件I/O操作。

C fopen方法格式

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

在上述格式中,参数' filename '是一个指向字符串的指针,该字符串具有要打开的文件的名称。openmode参数是一个指向字符串的指针,该字符串指定程序请求的访问类型(模式)。这种模式提供了一种限制应用程序使用文件的方法。C ' fopen '返回一个FILE指针,该指针被程序用来跟踪打开的文件。

C ' fopen '方法中的不同模式

以下是“fopen”访问模式:

可以选择使用上述模式指定一些附加字符,以实现不同类型的访问;例如' b '以二进制模式(随机访问)打开一个文本文件,但是这个特性只在基于windows的操作系统中可用。如果文件已经存在,字符' x '可以用模式' w '指定,以避免数据截断。

fopen中的“+”访问模式请求一个可以同时执行读和写的流。因此,当从读切换到写或从写切换到读时,这种类型的流需要像' fseek '这样的文件定位函数。否则,读写数据可能会以任何顺序相互混杂,因为在读写之间切换时,内部缓冲区没有被适当清空。但是,当一个文件以追加模式打开时,即使文件指针指向文件的中间(美国国家标准协会(ANSI)标准的C ' fopen '),写入操作也只能在文件的末尾执行。

更多C语言教程,请上Udemy.com学习。

如何C fopen方法工作?

在实现C ' fopen '之前,必须牢记以下要点,以避免调用该方法时出现错误:

*文件;

int characterValue;

file = fopen (" TestFile.txt ", " r ");

if (file == NULL) {

printf("错误");

其他{

characterValue = fgetc(文件);

while (characterValue != EOF) {

printf (" % c”,characterValue);

characterValue = fgetc(文件);

文件关闭(文件);

在上面的代码片段中,C ' fopen '方法打开名为' TestFile.txt '的文件,模式为' r ',即只读。当文件存在时,' fopen '返回file指针成功,否则返回' NULL '并在控制台上打印' Error '。当方法成功打开文件时,' else '将执行,并在控制台中打印文件的所有字符,直到查找指针到达文件末尾(EOF)。在上面的代码中,' fgetc '方法返回文件中的单个字符,并寻找指向下一个字符的读指针。' EOF '是一个值为' -1 '的常量,它在读取时显示文件的结束。最后,' fclose '方法释放程序在执行期间持有的资源(FILE指针)。

C fopen变量' fopen64 '

FILE *fopen64 (const char *filename, const char *openmode);

C ' fopen64 '是' fopen '的一个64位变体,它有助于在32位机器上打开大于2GB (fopen限制)的文件。该方法的替代方法是' fopen ',但是源代码是用_FILE_OFFSET_BITS == 64标志编译的。

修改后的变量' freopen '

FILE * freopen (const char *filename, const char * openmode, FILE *stream)

与C ' fopen '不同,' freopen '有第三个文件流类型的参数,该参数已经在程序中打开。它关闭打开的流,重新打开它,并将它与文件关联。这类似于' fclose '和' fopen '的组合。' freopen64 '是' freopen '的一个64位变体,与' fopen '中的' fopen64 '相同。当标准输入(stdin)、输出(stdout)和错误(stderr)的开放流必须附加到文件时,“freopen”方法通常被使用。下面的代码片段演示了如何创建用于输出的日志文件(stdout)。

文件*文件句柄;

fileHandler = freopen(" output.txt ", " w+ ", stdout);

fprintf(stdout, "此文本被重定向到output.txt\n ");

文件关闭(文件句柄);

要学习C语言的基本知识,请查看本课程。

c#顶级课程

面向初学者的c#。net
里克•菲利普斯
4.4 (1263)
完成c# Unity Game Developer 3D
Ben Tristem, Rick Davidson(游戏开发者)电视团队
4.7 (26828)
畅销书
c#中级:类,接口和面向对象
狂舞Hamedani
4.6 (23135)
畅销书
RPG核心战斗创造者:学习中级Unity c#编码
Ben Tristem, Rick Davidson, Sam Pattuzzi(游戏开发)电视团队
4.7 (8490)
c#高级主题:为技术面试做准备
狂舞Hamedani
4.5 (15119)
完整的c#大师级
丹尼斯•Panjuta教程。Denis Panjuta的eu
4.5 (12024)
c#和。net中的设计模式
Dmitri Nesteruk
4.4 (7102)
畅销书
学习使用c#和。net进行并行编程
Dmitri Nesteruk
4.5 (2035)
畅销书
Unity c#脚本:完成Unity游戏开发的c#betwayapp下载安装
Charger Games的Raja Biswas
4.5 (1388)
畅销书

更c#的课程

c#的学生也会学习

让你的团队。领导行业。

使用Udemy for Business订阅在线课程库和数字学习工具。

请求一个演示