2011-04-10 57 views
2
int main() 
{ 
    int r, c; 
    r = getchar(); 
    c = getchar(); 
    putchar(r); 
    putchar(c); 
    printf("\n"); 
    return(0); 
} 

它讀取r後,程序輸出r並退出。我希望它要求c並輸入它,但它怎麼沒有做到這一點?我想getchar兩次,但我不能

回答

3

你是在同一行還是兩行輸入字符?

getchar()將等到您按回車,然後開始解析字符。如果您在2行中輸入了2個字符,則會讀取第一個字符,然後讀取\n字符

我的意思是,下面的輸入:

a 
b 

相當於"a\nb"

getchar()將抓取\n而不是b,並打印a\n\n

你想輸入兩個字符,然後按回車。

+5

澄清:'getchar'不會等到你輸入;終端應用程序會緩存輸入,直到您輸入並立即發送所有內容。 – Potatoswatter 2011-04-10 02:10:02

2

您可能正在輸入X + 輸入。第一個getchar()讀取字符X,第二個getchar()讀取按Enter鍵時生成的換行符。在不按Enter鍵的情況下鍵入您的字符。

+1

@Yi Jiang:很酷的格式,感謝您的信息! – 2011-04-10 02:09:37

相關問題