【C 语言】文件操作 ( getc 和 putc 函数 )
【摘要】
文章目录
一、getc 函数二、putc 函数二、使用 getc 和 putc 函数实现文件加密操作四、使用 getc 和 putc 函数实现文件解密操作
一、getc 函数...
一、getc 函数
getc 函数的作用是从 FILE* 指针指向的文件中读取 1 1 1 个字符 ,
int getc(FILE *stream);
- 1
FILE *stream 参数 : 要读取字符的文件 ;
int 返回值 : 读取到的字符返回 int 类型值 ;
如果要读取文件中的内容 , 需要循环逐个字节读取 ;
文件结尾标识符是 EOF
#define EOF (-1)
- 1
在文本中 , 读取到 EOF , 说明读取到文件结尾了 ;
#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;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
执行结果 :
二、putc 函数
putc 函数的作用是 , 一次写入一个字符到文件中 ;
putc 函数原型 :
int putc(int char, FILE *stream)
- 1
int char 参数 : 要写入的字符 ;
FILE *stream 参数 : 要写入的文件系统 ;
代码示例 :
#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;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
执行结果 : 输出
ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 1
二、使用 getc 和 putc 函数实现文件加密操作
逐个字节加密 : 使用 getc 函数读取一个字节 , 然后加密 , 再用 putc 函数写出一个字节到另外一个文件中 ;
#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;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
执行结果 :
a.txt 内容 :
ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 1
加密后的 b.txt 内容 :
FGHIJKLMNOPQRSTUVWXYZ[\]^_
- 1
四、使用 getc 和 putc 函数实现文件解密操作
逐个字节加密 : 使用 getc 函数读取一个字节 , 然后解密 , 再用 putc 函数写出一个字节到另外一个文件中 ;
#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;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
执行结果 :
b.txt 内容 :
FGHIJKLMNOPQRSTUVWXYZ[\]^_
- 1
加密后的 c.txt 内容 :
ABCDEFGHIJKLMNOPQRSTUVWXYZ
- 1
文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。
原文链接:hanshuliang.blog.csdn.net/article/details/117322454
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)