2014-10-08 32 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; 
}