文件操作函数

fopen()函数参数:

r

只读的方式打开文件。

打开成功返回文件指针,

打开失败返回NULL

r+

以读写方式打开文件。

文件必须存在

rb+

以二进制模式读写文件,文件必须存在

rw+

读写一个二进制文件,允许读和写

w

打开只写文件,若文件存在,则文件长度清零,若文件不存在,则创建该文件

w+

打开读写文件,若文件存在,则文件长度清零,若文件不存在,则创建该文件

a

以追加形式打开只写文件。

如果文件不存在,创建文件;

若文件存在,在文件结尾处写文件

a+

以追加形式打开读写文件。

如果文件不存在,创建文件;

若文件存在,在文件结尾处写文件

 

b表示以二进制模式读文件

1.在windows系统:文本模式下:文件以“\r\n”代表换行,以文本模式打开文件,并用fputs等函数写入换行符”\n”时,函数会自动在“\n”之前加上”\r“。即实际上写入的”\r\n“;

2.在类Unix/Linux系统中文本模式下,文件以“\n“代表换行,所以Linux系统中在文本模式下和二进制模式下并无区别。

 

getc()函数和putc()函数

getc()函数每次只从文件中读取一个字符;

puts()表示一次只写一个字符;

 

使用getc和putc实现文件加密

复制代码
//加密过程
#include<stdio.h>
#define SEC 5
int main()
{
    FILE *p = fopen("./file.txt","r");
    FILE *p1 = fopen("./b.txt","w");
    if( NULL == p)
    {
        printf("open file failed\n");
    }
    else
    {
        char c = 0;
        while( (c = getc(p)) != EOF )
        {
            c += 5;
            putc(c,p1);
        }
    }
    fclose(p);
    p = NULL;
    return 0;
}
复制代码
复制代码
//解密过程
#include<stdio.h>
#define SEC 5
int main()
{
    FILE *p = fopen("./b.txt","r");
    FILE *p1 = fopen("./c.txt","w");
    if( NULL == p)
    {
        printf("open file failed\n");
    }
    else
    {
        char c = 0;
        while( (c = getc(p)) != EOF )
        {
            c -= SEC;
            putc(c,p1);
        }
    }
    fclose(p);
    p = NULL;
    fclose(p1);
    p1= NULL;
    return 0;
}
复制代码

 

posted @   王清河  阅读(291)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示