2012-09-14 38 views
-1

在下面的代碼中,我的角色並沒有存儲在角色裏面......任何人都可以告訴我什麼是錯? :爲什麼我的角色沒有使用scanf(C語言)進行掃描

char z; 
printf("A or B ?\n "); 
scanf("%c",&z); 
printf("%c",z); 
+0

是什麼'printf的輸出( 「%C」,Z);'?你可以在'printf(..)'之後放置另一個'scanf(..);'嗎? – nullpotent

+0

它適用於我(當我將它包裝在主程序中並添加'#include ')。我運行該程序並輸入'A',然後按Enter鍵;它打印'A'。由於缺乏換行符,您可能會失去輸出;嘗試將'printf(「%c」,z);'轉換爲'printf(「%c \ n」,z);' –

+0

@ user1592784:這之前是否有代碼需要輸入?如果是這樣的話,那麼在你有機會輸入任何輸入之前,你可能在'stdin'中遺留了一些你還沒有讀過的東西(比如''\ n'')評論以下答案)。 printf(「%x」,z);輸出是什麼? – AusCBloke

回答

0

輸入'A'或'B'後,您是否按回車/輸入?

+0

我沒有給屏幕鍵入...程序只是繼續,因爲如果scanf不存在 – user1592784

+0

把它前面的getchar() –

+0

getchar也不工作:( – user1592784

0

讀取所需字符之前另一dumy字符:

char dumy; 
scanf("%c%c",&dumy,&z); 
+0

你實際上可以使用'%* c'實際上掃描該字符,因此不需要其他變量。 –

+0

我這樣做過: printf(「A or B?\ n」); scanf(「%c,%c」,&dummy,&z); printf(「%c \ n」,z); 但打印的符號不是我輸入的內容:「╠」 – user1592784

+0

@ user1592784:在scanf語句中,'%c';之間沒有','); –

相關問題