看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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