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,因此它現在「指向」要讀取的下一個字符。如果你現在*寫*到那個位置會發生什麼? –