我有問題,這樣的代碼:C編譯器會忽略scanf函數
printf("Select your math: \n'+'addition \n'-'subtraction \n'*'multiplication \n'/' division \n");
char do_math;
scanf("%c", &do_math);
printf("Type 1 st number: ");
問題是,程序不等到我鍵入「do_math」,但它顯示爲「1型ST號:」第一個printf之後。有任何想法嗎?
你檢查,看看發生了什麼,以'do_math'? – 2014-11-04 20:56:39
是的,它只是忽略它。 – Xenix 2014-11-04 20:58:59
編譯器不會忽略'scanf'。您可以查看生成的彙編代碼(例如,使用'gcc -Wall -fverbose-asm -O -S')。你會發現'scanf'仍然在那裏被引用。你只是使用'scanf' *錯誤* – 2014-11-04 21:01:52