前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >fgetc、fputc 一次读写一个字符

fgetc、fputc 一次读写一个字符

作者头像
我与梦想有个约会
发布2023-10-20 16:14:13
1240
发布2023-10-20 16:14:13
举报
文章被收录于专栏:jiajia_deng

在C语言中,文件读写方式有很多种,比如一次读一个字符、一次读一行、一次读指定大小的内容等等方式,我们会依次介绍以上几种方式,本文开头,首先介绍一次读写一个字符的方法,其中需要使用到的函数为fgetc(读)、fputc(写)。期间的操作都需要文件句柄,我们也准备了一些文件做示例:

示例文件 File.txt:

Open file Opens the file whose name is specified in the parameter filename and associates it with a stream that can be identified in future operations by the FILE pointer returned.

The operations that are allowed on the stream and how these are performed are defined by the mode parameter.

The returned stream is fully buffered by default if it is known to not refer to an interactive device (see setbuf).

The returned pointer can be disassociated from the file by calling fclose or freopen. All opened files are automatically closed on normal program termination.

The running environment supports at least FOPEN_MAX files open simultaneously.

对该文件的读写相关代码如下(只需将以上文字保存为File.txt存放到我们编写的程序当前目录即可正常读写),代码在VS下编译通过,注意第一行的

#define _CRT_SECURE_NO_WARNINGS

这段文本的意思是让VS可以使用非安全函数,因为VS认为fopen等函数是不安全的,推荐你使用fopen_s等安全函数,这完全根据个人需要,如果大家是在Windows下编程,还是建议大家都使用VS推荐的安全函数,这样可增加程序的健壮性。

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
// 一次读写一个字符
FILE* pFile = fopen(“File.txt”, “r”);
if (NULL == pFile) return -1;
FILE* pWriteFile = fopen(“WriteFile.txt”, “w”);
if (NULL == pWriteFile)
{
fclose(pFile);
return -1;
}
char ch;
// EOF为文件的结束标志,如果fgetc返回的结果为EOF证明读到了文件末尾
// 另外还有feof方式判断是否到文件末尾,但由于该函数缺陷过多,不推荐大家使用
while ((ch = fgetc(pFile)) != EOF)
{
putchar(ch);
// 将读取到的字符写入到新文件WriteFile.txt中
fputc(ch, pWriteFile);
}
fclose(pFile);
fclose(pWriteFile);
system(“pause”);
return 0;
}

注意上面代码中是如何判断文件结尾的,C语言提供了一个feof的函数,但由于该函数缺陷较多,容易出问题,所以不建议大家使用该函数来处理文件。所以并没有给出示例。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-05-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档