※ 引述《johnnyne (強尼乃)》之銘言:
: int main()
: {
: char ch[4],state;
: int day;
: printf("請輸入名字:");
: scanf("%s",&ch);
: printf("hello! %s\n",ch);
: printf("請問你單身嗎? y/n:");
: scanf("%c",&state);
: system("pause");
: }
: 請問為什麼這程式下去RUN之後
: 第二個scanf為什麼不能run??
第二個scanf不能run的原因是吃到'\n'
把"%c"換成" %c"即可
但你的程式還是有些問題,請看我修正後的版本與說明:D
int main()
{
char ch[4],state;
int day;
printf("請輸入名字:");
scanf("%3s",ch); //限制字串長度,避免寫到不該寫的地方
//留下最後一個字元給'\0'
//這邊不用對ch reference,
//因為陣列名稱本身就是一個Constant Pointer
while(getchar() != '\n'); //吃掉多餘的字元
printf("hello! %s\n",ch);
printf("請問你單身嗎? y/n:");
scanf("%c",&state);
system("pause");
return 0;
}
--
數年前的記憶,有錯請指正,感謝:D
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.240.78