C语言,文件读取部分的,不会,求各位大佬帮帮忙

【问题描述】有一种加密方法为:其使用一个字母串(可以含重复字母,字母个数不超过50)作为密钥。假定密钥单词串为feather,则先去掉密钥单词中的重复字母得到单词串feathr,然后再将字母表中的其它字母以反序追加到feathr的后面:

f e a t h r z y x w v u s q p o n m l k j i g d c b
加密字母的对应关系如下:

a b c d e f g h i j k l m n o p q r s t u v w x y z
f e a t h r z y x w v u s q p o n m l k j i g d c b
其中第一行为原始英文字母,第二行为对应加密字母。其它字符不进行加密。编写一个程序,用这种密码加密文件。假定要加密的文件名为encrypt.txt及加密后的文件名为output.txt,并假定输入文件中字母全为小写字母,并且输入密钥也全为小写字母。

【输入形式】从标准输入中输入密钥串,并从文件encrypt.txt中读入要加密的内容。
【输出形式】加密后结果输出到文件output.txt中。
【样例输入】
feather
和文件encrypt.txt中内容,例如被加密的文件encrypt.txt中内容为:
c language is wonderful.
【样例输出】加密后output.txt文件中内容为:
a ufqzjfzh xl gpqthmrju.
【样例说明】首先将给定的密钥单词去除重复字母,然后按照上面的加密对应表对encrypt.txt文件内容进行加密即可得到加密后的文件,其中只对英文字母进行加密对换,并且假设encrypt.txt中的英文字母全是小写字母。

运行结果

处理密码串及加密过程

解密及测试主程序

上面是测试结果与加解密过程。

没有做文件读写操作,自己补,实在不会去抄教材。将输入文件内容循环读到一个字符数组,然后对该数组内容进行加密,再将加密结果写入输出文件,循环操作直至输入文件读取完成,关闭文件即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-06-26

分析问题:下面给出从一个文件中读取单词的函数int getword(FILE * ptr,char *word)

调用方法:

    在main()中先定义一个分配好空间的字符串char str[MAXSIZE]

    打开文件FILE * IN=fopen("encrypt.txt","r");

    getword(IN,str),会读入文件中的一个完整的单词到word里面,如果getword()返回EOF,则说明已经读完了所有的单词

#include<stdio.h>

#include<ctype.h>

void getword(FILE * ptr, char * word)

{

    char c;

    while(!isalpha(c=fgetc(ptr)))

        if(c==EOF)

            return EOF;

    do

    {

        *word++=c;

    } while (c=fgetc(ptr));

    *word='\0';

    return 1;

}

如果这个回答能够帮助到你,能够关#注一下🐎

本回答被网友采纳
第2个回答  2020-06-26
使用一个字母串(可以含重复字母,字母个数不超过50)作为密钥。假定密钥单词串为feathe使用一个字母串(可以含重复字母,字母个数不超过50)作为密钥。假定密钥单词串为feathe
第3个回答  2020-06-25
使用一个字母串(可以含重复字母,字母个数不超过50)作为密钥。假定密钥单词串为feathe
第4个回答  2020-06-27

相似回答