我是一個begginer所以我卡在這部分。我需要輸入一條消息,並將字母移到'加密'消息的位移量。 問題是它不顯示任何文本,它只是從不退出while循環。使用sscanf()函數讀取一個字符串
任何幫助將不勝感激。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char ch,message[50]={0};
int shift;
printf("Enter message to be encrypted: ");
scanf("%s",message);
printf("Enter shift amount (1-25): ");
scanf("%d",&shift);
printf("Encrypted message: ");
while((sscanf(message," %c",&ch) == 1) && (ch != '\n'));
{
ch += shift;
putchar(ch);
}
return 0;
}
輸出:
Enter message to be encrypted: abcABC
Enter shift amount (1-25): 3
Encrypted message:
(有計劃是stucked在infite環)
你有「;」在while語句末尾 – ColdSteel
另請參見http://www.cplusplus.com/reference/cstdio/sscanf/ 您始終只讀取「message」的第一個字符 – ColdSteel
但由於您的消息有一個定義的大小我會建議使用for循環 - >它會更安全 – ColdSteel