2016-03-20 3 views
1

Я только начал изучать C, и у меня возникла проблема с некоторым базовым кодом. согласно книге, которую я читаю (язык программирования C), этот код должен принимать пользовательский ввод, а затем выводить его. Вместо этого им просто получить первую букву ввода перед тем как программа закрываетC базовый код не работает как ожидалось

#include <stdio.h> 

main() 
{ 
    int c; 

    c = getchar(); 
    while (c != EOF) { 
     putchar(c); 
     c = getchar(); 
    } 

} 
+4

вы должны использовать 'int main', потому что implicit-int устарел. Также, верните 0 в конце. – stackptr

+0

Попробуйте перенаправить ввод, чтобы он считывался из файла. Когда вход отражается на том же устройстве, что и на выходе (например, на экране), вы не обязательно увидите все, что ожидаете. – Peter

+4

Как * точно * вы управляете этим? Код выглядит правильно, в отличие от консенсуса ниже. Этот * будет * строковый буфер stdout, поэтому вы не увидите никакого вывода, пока не введете cr/lf, но если вы наберете «blah» и нажмите enter, вы увидите «blah» после этого. – WhozCraig

ответ

0
#include <stdio.h> 

main() 
{ 
    int c; 
    c = getchar(); 
    while (c != EOF) { 
     putchar(c); 
     c = getchar(); 
    } 
} 

Работы правильной.

Понимание основной концепции getchar: - getchar функция в языке программирования C, который считывает один символ из стандартного входного потока stdin, независимо от того, какой он есть, и возвращает его в программу.

Основная проблема должна быть связана с IDE.