我正在製作一個基於文本的遊戲,並且我遇到了很大的輸入問題。這是一個小我的問題代碼的例子。所以,如果你編譯/運行這個,並鍵入'abc',它將只取每一個,並通過循環發送它。我需要它做的只是第一個字符,有人輸入,無論他們輸入多少個。輸入問題scanf()/ getchar()
而且,PS:我已經嘗試過這種方式,它做了同樣的事情:
#include <stdio.h>
#include <stdlib.h>
char c[2];
int main(int argc, char *argv[]){
system("clear");
while(1){
printf("\nInput a character.\n");
scanf("%1s", c);
printf("\nYour input: %c\n", c[0]);
sleep(1);
system("clear");
}
return 0;
}
編輯:它也增加了一個空間,你什麼都輸入,我認爲它是一個\ 0,但我不知道。謝謝!
通常,標準輸入緩衝,直到用戶按下回車鍵。獲取單個字符的方法因操作系統而異。你在使用哪種操作系統? – user3386109 2014-11-01 19:08:03
我使用的是Ubuntu 14.04 LTS – 2014-11-01 19:08:46
這實際上令人沮喪的是,這個標準並沒有給出處理這種情況的好方法。在POSIX系統上,你可以使用'getline',它工作得非常好。 – MicroVirus 2014-11-01 19:08:47