跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
C 语言文件基础
”︁(章节)
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
= C语言文件基础 = 在C语言中,文件操作是程序与外部存储设备(如硬盘、U盘等)进行数据交互的重要手段。通过文件操作,程序可以读取、写入和修改存储在文件中的数据。本章将详细介绍C语言中的文件基础概念、操作流程以及相关函数。 == 文件的基本概念 == 文件是存储在外部存储设备上的数据集合,可以是文本文件或二进制文件。在C语言中,文件操作通常包括以下步骤: 1. '''打开文件''':使用`fopen()`函数打开文件,并返回一个文件指针。 2. '''读写文件''':使用`fread()`、`fwrite()`、`fscanf()`、`fprintf()`等函数进行数据读写。 3. '''关闭文件''':使用`fclose()`函数关闭文件,释放资源。 === 文件指针 === 文件指针(`FILE *`)是C语言中用于操作文件的关键数据结构。它指向一个文件流,通过它可以对文件进行读写操作。例如: <syntaxhighlight lang="c"> FILE *fp; // 声明一个文件指针 </syntaxhighlight> == 文件的打开与关闭 == === 打开文件 === `fopen()`函数用于打开文件,其语法为: <syntaxhighlight lang="c"> FILE *fopen(const char *filename, const char *mode); </syntaxhighlight> 其中: * `filename`:文件名(包括路径)。 * `mode`:打开模式,如`"r"`(只读)、`"w"`(只写)、`"a"`(追加)等。 示例: <syntaxhighlight lang="c"> FILE *fp = fopen("example.txt", "r"); // 以只读方式打开文件 if (fp == NULL) { printf("文件打开失败!\n"); return 1; } </syntaxhighlight> === 关闭文件 === `fclose()`函数用于关闭文件,其语法为: <syntaxhighlight lang="c"> int fclose(FILE *fp); </syntaxhighlight> 示例: <syntaxhighlight lang="c"> fclose(fp); // 关闭文件 </syntaxhighlight> == 文件的读写操作 == === 文本文件的读写 === 文本文件以字符形式存储数据,常用的读写函数包括: * `fprintf()`:格式化写入文件。 * `fscanf()`:格式化读取文件。 示例:写入数据到文件 <syntaxhighlight lang="c"> FILE *fp = fopen("output.txt", "w"); if (fp == NULL) { printf("文件打开失败!\n"); return 1; } fprintf(fp, "Hello, World!\n"); // 写入字符串 fclose(fp); </syntaxhighlight> 示例:从文件读取数据 <syntaxhighlight lang="c"> FILE *fp = fopen("input.txt", "r"); if (fp == NULL) { printf("文件打开失败!\n"); return 1; } char buffer[100]; fscanf(fp, "%s", buffer); // 读取字符串 printf("读取的内容:%s\n", buffer); fclose(fp); </syntaxhighlight> === 二进制文件的读写 === 二进制文件以字节形式存储数据,常用的读写函数包括: * `fwrite()`:写入二进制数据。 * `fread()`:读取二进制数据。 示例:写入二进制数据 <syntaxhighlight lang="c"> int data[] = {1, 2, 3, 4, 5}; FILE *fp = fopen("data.bin", "wb"); if (fp == NULL) { printf("文件打开失败!\n"); return 1; } fwrite(data, sizeof(int), 5, fp); // 写入5个整数 fclose(fp); </syntaxhighlight> 示例:读取二进制数据 <syntaxhighlight lang="c"> int data[5]; FILE *fp = fopen("data.bin", "rb"); if (fp == NULL) { printf("文件打开失败!\n"); return 1; } fread(data, sizeof(int), 5, fp); // 读取5个整数 for (int i = 0; i < 5; i++) { printf("%d ", data[i]); } fclose(fp); </syntaxhighlight> == 文件操作的实际应用 == === 案例1:日志记录 === 文件操作常用于记录程序运行日志。例如: <syntaxhighlight lang="c"> FILE *log = fopen("app.log", "a"); if (log == NULL) { printf("日志文件打开失败!\n"); return 1; } fprintf(log, "[INFO] 程序启动于 %s\n", __TIME__); fclose(log); </syntaxhighlight> === 案例2:配置文件读取 === 程序可以通过文件操作读取配置文件。例如: <syntaxhighlight lang="c"> FILE *config = fopen("config.ini", "r"); if (config == NULL) { printf("配置文件打开失败!\n"); return 1; } char key[50], value[50]; while (fscanf(config, "%s = %s", key, value) != EOF) { printf("配置项:%s = %s\n", key, value); } fclose(config); </syntaxhighlight> == 文件操作的常见错误与处理 == === 错误处理 === 文件操作可能因权限不足、文件不存在等原因失败。可以通过检查返回值或使用`perror()`函数输出错误信息: <syntaxhighlight lang="c"> FILE *fp = fopen("nonexistent.txt", "r"); if (fp == NULL) { perror("文件打开失败"); // 输出错误信息 return 1; } </syntaxhighlight> === 文件指针的有效性 === 操作文件前应检查文件指针是否为`NULL`,以避免程序崩溃。 == 总结 == C语言文件操作是程序与外部存储设备交互的重要方式。通过`fopen()`、`fclose()`、`fread()`、`fwrite()`等函数,可以实现文件的读写和管理。掌握文件操作是C语言编程的基础技能之一。 === 练习 === 1. 编写一个程序,将用户输入的内容保存到文件中。 2. 编写一个程序,读取文件内容并统计行数。 [[Category:编程语言]] [[Category:C]] [[Category:C 语言文件操作]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)