前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C 语言】文件操作 ( getc 和 putc 函数 )

【C 语言】文件操作 ( getc 和 putc 函数 )

作者头像
韩曙亮
发布2023-03-29 13:03:56
7540
发布2023-03-29 13:03:56
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、getc 函数


getc 函数的作用是从 FILE* 指针指向的文件中读取 1 个字符 ,

代码语言:javascript
复制
int getc(FILE *stream);

FILE *stream 参数 : 要读取字符的文件 ;

int 返回值 : 读取到的字符返回 int 类型值 ;

如果要读取文件中的内容 , 需要循环逐个字节读取 ;

文件结尾标识符是 EOF

代码语言:javascript
复制
#define EOF (-1)

在文本中 , 读取到 EOF , 说明读取到文件结尾了 ;

代码语言:javascript
复制
#include <stdio.h>

int main()
{
    // 以 r 只读方式 打开 二进制文件
    FILE *p = fopen("D:\\a.txt", "r");
    if(p == NULL)
    {
        printf("File Open Failed !\n");
    }else
    {
        printf("File Open Success !\n");

        char c = 0;
        // 读取到文件末尾 EOF 退出循环
        while(c != EOF){
            c = getc(p);
            printf("%c", c);
        }

        // 如果打开成功 , 则需要关闭文件
        fclose(p);
    }

    printf("Main End\n");
    return 0;
}

执行结果 :

在这里插入图片描述
在这里插入图片描述

二、putc 函数


putc 函数的作用是 , 一次写入一个字符到文件中 ;

putc 函数原型 :

代码语言:javascript
复制
int putc(int char, FILE *stream) 

int char 参数 : 要写入的字符 ;

FILE *stream 参数 : 要写入的文件系统 ;

代码示例 :

代码语言:javascript
复制
#include <stdio.h>

int main()
{
    // 以 w 只写方式 打开 二进制文件
    FILE *p = fopen("D:\\a.txt", "w");
    if(p == NULL){
        printf("File Open Failed !\n");

    }else{
        printf("File Open Success !\n");

        char c = 'A';
        int i = 0;

        for(i = 0; i < 26; i ++){
            putc(c, p);
            c++;
        }

        // 如果打开成功 , 则需要关闭文件
        fclose(p);
    }

    printf("Main End\n");
    return 0;
}

执行结果 : 输出

代码语言:javascript
复制
ABCDEFGHIJKLMNOPQRSTUVWXYZ
在这里插入图片描述
在这里插入图片描述

二、使用 getc 和 putc 函数实现文件加密操作


逐个字节加密 : 使用 getc 函数读取一个字节 , 然后加密 , 再用 putc 函数写出一个字节到另外一个文件中 ;

代码语言:javascript
复制
#include <stdio.h>

#define SEC 5

int main()
{
    // 打开一个文件 , 以读的方式
    // r : 使用读的方式打开一个文件 ;
    FILE *p = fopen("D:\\a.txt", "r");

    // 打开一个文件 , 以写的方式
    // w : 如果文件不存在 , 就创建文件 , 如果文件存在 , 就将该文件覆盖 , 总之写出的是一个新文件 ;
    FILE *p2 = fopen("D:\\b.txt", "w");

    char s = 0;
    while ((s = getc(p)) != EOF){
        // 字符自增
        s += SEC;

        // 将读取到的数据写入到 p2 文件中
        putc(s, p2);
    }

    // 关闭文件
    fclose(p);
    fclose(p2);

    printf("Main End\n");
    return 0;
}

执行结果 :

a.txt 内容 :

代码语言:javascript
复制
ABCDEFGHIJKLMNOPQRSTUVWXYZ

加密后的 b.txt 内容 :

代码语言:javascript
复制
FGHIJKLMNOPQRSTUVWXYZ[\]^_
在这里插入图片描述
在这里插入图片描述

四、使用 getc 和 putc 函数实现文件解密操作


逐个字节加密 : 使用 getc 函数读取一个字节 , 然后解密 , 再用 putc 函数写出一个字节到另外一个文件中 ;

代码语言:javascript
复制
#include <stdio.h>

#define SEC 5

int main()
{
    // 打开一个文件 , 以读的方式
    // r : 使用读的方式打开一个文件 ;
    FILE *p = fopen("D:\\b.txt", "r");

    // 打开一个文件 , 以写的方式
    // w : 如果文件不存在 , 就创建文件 , 如果文件存在 , 就将该文件覆盖 , 总之写出的是一个新文件 ;
    FILE *p2 = fopen("D:\\c.txt", "w");

    char s = 0;
    while ((s = getc(p)) != EOF){
        // 字符自减
        s -= SEC;

        // 将读取到的数据写入到 p2 文件中
        putc(s, p2);
    }

    // 关闭文件
    fclose(p);
    fclose(p2);

    printf("Main End\n");
    return 0;
}

执行结果 :

b.txt 内容 :

代码语言:javascript
复制
FGHIJKLMNOPQRSTUVWXYZ[\]^_

加密后的 c.txt 内容 :

代码语言:javascript
复制
ABCDEFGHIJKLMNOPQRSTUVWXYZ
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、getc 函数
  • 二、putc 函数
  • 二、使用 getc 和 putc 函数实现文件加密操作
  • 四、使用 getc 和 putc 函数实现文件解密操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档