2014-10-08 30 views
1

我一直在研究這一段時間,我只是想知道是否可以用getchar()來讀段落然後用putchar()打印它。我知道有更好的方法來讀取並打印出一個段落,但我只是以C瞎搞,並很好奇,這裏是我到目前爲止有:在段落中讀入getchar()並用循環和putchar()打印出來()

#include <stdio.h> 
int main() 
{ 
    int c; 
    printf("Enter a value:"); 
    { 
     for (int i=0; i<10000; i++) 
     { 
      c = getchar(); 
      putchar(c); 
     } 
     printf("\nthank you"); 
     printf("\n"); 
    } 
    return 0; 
} 

我所需的輸出是:

輸入一個值/段:

你輸入的值是:

+0

你不需要用於循環的大括號。如果您正在從文件中讀取數據,則可以使用一個循環來讀取字符並將其打印出來。如果你從stdin(終端)閱讀,你會輸入一個字符並再次打印(看起來很醜)。 – saadtaame 2014-10-08 00:58:53

+0

'您不需要用於循環的大括號。'@saadtaame不,但它更容易維護,並且對於其他用戶(即StackOverflow上的用戶)可以更輕鬆地進行讀取。 – Qix 2014-10-08 01:04:52

+0

@Qix更易於閱讀?這是一個笑話吧? – saadtaame 2014-10-08 09:58:30

回答

0

我想你想完全捕捉整個段落。您只需按下Enter鍵即可停止。

下面是詳細:getchar()將等待進入無論如何,在此期間,無論你輸入的內容,將在同一時間存儲在緩衝並顯示在屏幕上。然後在按下輸入鍵後,getchar()停止等待,並一次返回一個字符,以便您可以通過putchar打印它們。

/* getchar example : typewriter */ 
#include <stdio.h> 

int main() 
{ 
    int c; 
    puts ("Enter text. Press enter to exit:"); 
    do { 
    c=getchar(); 
    putchar (c); 
    } while (c != '\n'); 
    return 0; 
}