C/C++知识点之C语言以字符形式读写文件
小标 2018-09-18 来源 : 阅读 955 评论 0

摘要:本文主要向大家介绍了C/C++知识点之C语言以字符形式读写文件,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之C语言以字符形式读写文件,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

一、字符读取函数 fgetc
(一)、函数介绍
fgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符。函数原型为:
int fgetc(FILE* fp)
fp 为文件指针。fgetc() 读取成功时返回读取到的字符,读取到文件末尾或读取失败时返回 EOF
在文件内部有一个位置指针,用来指向当前读写到的位置,也就是读写到第几个字节。在打开文件时,该指针总是指向文件的第一个字节。使用fgetc函数后,该指针会向后移动一个字节,可以连续多次使用fgetc 读取多个字符。
(二)、使用 fgetc 读取文件实例
文件 test.txt 中有以下内容:
I am Test.txt!
我是被读取的文件。
test。。。
现在使用 fgetc函数将文件中的内容读取出来,程序如下:
// c 语言以字符形式读取文件(ANSI编码)
#include 
int main()
{
    FILE* fp;
    char ch;
    fp = fopen("./test.txt", "r");
    if (NULL != fp)
    {
        while (EOF != (ch=fgetc(fp)) )
        {
            putchar(ch);
        }
        printf("\n");
        return 1;
    }

    return 0;
}

程序运行结果如下图所示:

二、字符写入函数 fputc
(一)、函数介绍
? fputc 是 file output char 的缩写,意思是向指定的文件中写入一个字符。函数原型为:
int fputc(int ch, FILE* fp);
ch 为要写入的字符,fp 为文件指针。 fputc() 写入成功时返回写入的字符,失败时返回 EOF,返回值为 int 也是为了容纳这个负数。
写入文件时需要注意一下两点:

被写入的文件可以用写,读写,追加方式打开,用写或者读写方式打开一个已存在的文件时将清除原有文件的内容,并将写入的字符放在文件的开头。如需保留原有文件的内容,并把写入的字符放在文件的结尾,就必须使用追加的方式打开。不管以何种方式打开,被写入的文件若不存在时则创建该文件。
每写入一个字符,文件内部位置指针向后移动一个字节。

(二)、使用 fputc 写入文件实例
下面的程序实现创建文件 fputctest.txt ,然后从键盘获取输入字符并使用 fputc 函数将输入的字符写入文件中。最后再使用 fgetc 将写入文件中的内容读取出来。
#include 

int main()
{
    FILE* fp;
    char ch;
    fp = fopen("./fputctest.txt", "wt+");  //以读写方式打开文件,文件不存在则创建
    if (NULL == fp)
    {
        printf("open file failed!\n");
        return 1;
    }
    // 每次从键盘读取一个字符写入文件
    printf("开始写入文件:\n");
    while ((ch =getchar()) != '\n')
    {
        fputc(ch, fp);
    }

    rewind(fp);  // 将文件指针重新指向文件头
    printf("\n开始读取文件:\n");
    if (NULL != fp)
    {
        while (EOF != (ch = fgetc(fp)))
        {
            putchar(ch);
        }
        printf("\n");
        return 1;
    }

    fclose(fp);
    return 0;
}

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程