1
我只想获取文件的内容并在同一文件中对其进行加密。如何读取,加密和覆盖文本文件
我知道这不是最有效的加密形式,但我只是玩弄它看看代码如何读取文件。
Hello.txt有“abcdefg”。
但是当我通过它运行代码时,没有任何变化。
我在做什么错?
#include<stdio.h>
int main(){
FILE *fp1=NULL;
char ch;
fp1=fopen("C:\\Hello.txt","r+");
if(fp1==NULL)
{
printf("fp1 NULL!\n");
}
while(1){
ch=fgetc(fp1);
if(ch==EOF){
printf("End of File\n");
break;
}
else{
ch=ch*10;
fputc(ch,fp1);
}
}
fclose(fp1);
return 0;
}
首先第一件事情:该'fgetc'功能(HTTP:// EN .cppreference.com/w/c/io/fgetc)会返回一个“int”。这对你的'EOF'检查非常重要。 –
此外,当用[10]乘以[ASCII字符](http://en.cppreference.com/w/c/language/ascii)时,你会怎么想呢?什么是例如97(“a”的ASCII值)乘以10?这个结果如何适合一个字节? –
最后,当你写入这个文件时,你认为它会写在哪里?想象一个文件很像内存中的数组,文件的位置就像索引到数组中。当你从文件中读取一个字符时,它会将文件位置增加1,因此它现在“指向”要读取的下一个字符。如果你现在*写*到那个位置会发生什么? –