我想在打印加密信息之前添加"Encrypted message: "
。凱撒密碼程序的打印結果
當我把printf
聲明「而」循環中,我得到的線沿線的東西在裏面: AEncrypred message: BEncrypted message: CEncrypted message:
等
如果我試圖把printf
聲明外循環,不執行打印作業。
有沒有辦法在結果前打印"Encrypted message: "
而仍然使用putchar();
?
#include <stdio.h>
#include <ctype.h>
char encrypt(char in, int key)
{
if (isalpha(in))
{
if (isupper(in))
{
return (((in-'A') + key) % 26) + 'A';
}
else
{
return (((in-'a') + key) % 26) + 'a';
}
}
else return in;
}
int main()
{
int key;
char ch, res;
printf("Enter shift amount (1-25):\n");
scanf("%d", &key);
printf("Enter message to be encrypted:\n");
getchar();
while (ch != '\n')
{
ch = getchar();
res = encrypt(ch, key);
putchar(res);
}
return 0;
}
構建一個char數組並使用'printf'打印它 – 2014-11-07 02:36:33
如果您正在讀取一個字符然後寫入一個字符,那麼在輸出之前不能輸出任何內容。你最終會得到你得到的輸出。一個更好的方法是首先接受所有的輸入,打印你的消息,然後一次打印加密的輸出,而不是一次處理一個字符。 – 2014-11-07 02:38:23
賦值問:1.您必須使用getchar()輸入字符,並使用putchar()輸出字符。 2.由於您不知道消息的長度,因此無法將其存儲在數組中。您應該一次輸入,加密並輸出一個字符。 – FBZombies 2014-11-07 02:42:16