61-c语言文件字符读写
在C语言中,文件字符读写通过
fgetc()(从文件读取单个字符,返回EOF表示结束)和fputc()(向文件写入单个字符)实现,操作流程包括用fopen()以"r"(读)或"w"(写)模式打开文件、进行字符读写操作、最后用fclose()关闭文件,同时需检查文件打开是否成功以避免错误。
在C语言中,文件的字符读写是基本的文件操作方式,通过fgetc()和fputc()函数实现。
基本概念
- "读":输入数据,将数据从磁盘(文件)中输入到内存中存储
- "写":输出数据,将数据从内存中输出到磁盘(文件)中存储
重要提示:在进行文件操作前,必须先确定操作类型(读/写),再选择相应的打开方式("r"表示读,"w"表示写)。
1. 字符读取:fgetc()函数
函数原型
int fgetc(FILE *stream);
功能
从指定的文件中读取一个字符
用法示例
#include <stdio.h>
int main() {
FILE *fp;
int ch;
// 打开文件进行读取
fp = fopen("example.txt", "r");
if (fp == NULL) {
perror("无法打开文件");
return 1;
}
// 逐个读取字符直到文件末尾
while ((ch = fgetc(fp)) != EOF) {
putchar(ch); // 将字符输出到屏幕
}
fclose(fp);
return 0;
}
说明
fgetc()返回读取的字符的ASCII码值,若到达文件末尾或发生错误,返回EOF(通常为-1)EOF是定义在<stdio.h>中的常量
2. 字符写入:fputc()函数
函数原型
int fputc(int character, FILE *stream);
功能
将一个字符写入指定的文件中
用法示例
#include <stdio.h>
int main() {
FILE *fp;
// 打开文件进行写入("w"模式会清空原有内容)
fp = fopen("example.txt", "w");
if (fp == NULL) {
perror("无法打开文件");
return 1;
}
// 写入字符'a'到'z'
for (char c = 'a'; c <= 'z'; c++) {
fputc(c, fp);
}
// 写入换行符
fputc('\n', fp);
// 写入字符串"Hello, World!"
fputc('H', fp);
fputc('e', fp);
fputc('l', fp);
fputc('l', fp);
fputc('o', fp);
fputc(',', fp);
fputc(' ', fp);
fputc('W', fp);
fputc('o', fp);
fputc('r', fp);
fputc('l', fp);
fputc('d', fp);
fputc('!', fp);
fclose(fp);
return 0;
}
说明
fputc()返回写入的字符ASCII码,若写入失败,返回EOF- 可以通过循环或条件语句逐个写入字符
3. 完整文件操作流程
// 1. 打开文件
FILE *fp = fopen("filename", "mode");
// 2. 检查是否成功打开
if (fp == NULL) {
perror("错误信息");
return 1;
}
// 3. 文件操作
// 读操作
while ((ch = fgetc(fp)) != EOF) {
// 处理字符
}
// 写操作
fputc('a', fp);
// ...其他写入操作
// 4. 关闭文件
fclose(fp);
4. 注意事项
-
打开方式选择:
- "r":只读打开文本文件
- "w":只写打开或建立新文件(原有内容会被清空)
- "a":追加打开文本文件(在文件末尾添加内容)
-
错误处理:始终检查文件是否成功打开
-
资源管理:操作完成后必须关闭文件,避免资源泄漏
-
文件指针:关闭后应将文件指针置为NULL,避免野指针
-
字符编码:C语言中文件是字节流,fgetc和fputc处理的是单个字节
5. 实用技巧
- 逐字符读写:适合处理小文件或需要精细控制的场景
- 从键盘读取:
fgetc(stdin)从标准输入(键盘)读取 - 输出到屏幕:
fputc('a', stdout)将字符输出到屏幕
6. 代码示例:完整文件字符读写
#include <stdio.h>
int main() {
FILE *fp;
int ch;
// 写入操作
fp = fopen("test.txt", "w");
if (fp == NULL) {
perror("无法打开文件进行写入");
return 1;
}
// 写入26个字母
for (char c = 'a'; c <= 'z'; c++) {
fputc(c, fp);
}
fputc('\n', fp); // 写入换行符
fputc('H', fp);
fputc('e', fp);
fputc('l', fp);
fputc('l', fp);
fputc('o', fp);
fclose(fp);
// 读取操作
fp = fopen("test.txt", "r");
if (fp == NULL) {
perror("无法打开文件进行读取");
return 1;
}
// 逐个读取并打印
while ((ch = fgetc(fp)) != EOF) {
putchar(ch);
}
fclose(fp);
return 0;
}
通过上述方法,您可以实现C语言中基本的文件字符读写操作。这些函数是C语言文件操作的基础,理解它们对进行更复杂的文件操作至关重要。
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 软件从业者Hort
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果

