我有一個小C程序的問題。它輸出一個問題(見下面的代碼),其中我可以把輸入放入(y和n)中,但是沒有其他事情發生,即使它打算根據輸入的輸入(y或n)打印某些內容。但是,在我的問題後沒有輸出,程序剛剛退出。下面是代碼:爲什麼沒有這個y/n程序的輸出
#include <stdio.h>
int main()
{
char string [80];
static char y;
static char n;
printf("ARE YOU SHAQIRI? [y/n]: ");
scanf("%s", string);
if ("%s" == "y")
printf("That's impossible. YOU CANNOT BE SHAQIRI YOU IDIOT");
else if ("%s" == "n")
printf("I thought not.");
fflush (stdin);
return 0;
}
爲什麼在單個字符是ay/n響應所需的全部字符時浪費字符串的80個字節?只需'getchar()'而不是'scanf()' – Mike
不要在'stdin'上調用'fflush' - 它會導致未定義的行爲。另外,你爲什麼要讓你的局部變量爲'static'? –
以下是根本錯誤:*「%s」*不是神奇的。它只是帶有百分號和s的文字字符串。所以*「%s」==「y」*將始終爲假,和*「%s」==「n」*一樣。 – dyoo