2015-12-13 5 views
0

Я пробовал Dev-C++ и MinGW (32-разрядный), но каждый раз, когда я запускаю код, ничего не выводится. Я использую Windows 7. ниже мой код.Программа подсчета символов не выводит ничего

#include<stdio.h> 
main() 
{ 
    long nc; 
    nc=0; 
    while(getchar()!=EOF) 
    ++nc; 
    printf("Number of chars are %ld ",nc); 
} 

Я также пробовал pressing Ctrl-D to signal the EOF, но он не работает. когда я вводил «rajkumar» и [enter], он ничего не делает. когда я вводим «rajkumar» и^Z [enter] дважды, он заканчивается. все, что я спрашиваю, почему он не печатает ожидаемый результат? и когда я попробовал это в первый раз, он работал нормально два раза, но тогда я не знаю, что пошло не так.

+1

Вы нажимаете enter после ввода? – ameyCU

+1

Я думаю, что в Windows это не C-d, а C-z или что-то в этом роде. – 5gon12eder

+0

Да, я сделал, и ничего не приходит, кроме мигающего курсора – RaJ

ответ

-1

Попробуйте положить \ n в конец вашего printf. Что-то вроде: printf("Number of chars are %ld /n",nc);

+0

чувак ... пожалуйста. – RaJ

+1

Если основная функция возвращается к исходному вызывающему абоненту или если вызывается функция выхода, все открытые файлы закрываются (следовательно, все выходные потоки очищаются **) до завершения программы. –

+0

, тем не менее, несколько проблем были исправлены, включив в конце строки формата '\ n'. (и при запуске из окна .cmd окно, скорее всего, будет закрыто, прежде чем пользователь сможет увидеть этот вывод – user3629249

1

Чтобы сигнализировать EOF в Windows, нажмите Ctrl-Z, а затем Enter.

Примечание: это для консоли Windows. Если вы запускаете программу внутри своей IDE, ваша среда разработки может иметь или не иметь возможности сигнализировать EOF.

3

Основываясь на this answer, чтобы вызвать обнаружение EOF,

  • первый сделать ENTER
  • затем нажмите управленияZ (или^D на Linux), который должен быть начало строки
  • нажмите ENTER еще раз, если обнаружение еще не было gered
0

getchar() получает один символ, а также принимает ввод. Поэтому, если вы нажмете r, а затем Enter, будет введен только его r. Поэтому вам нужно нажать Enter после нажатия клавиш. Без Enter getchar() не примет символ.

+0

, но он даже не печатает. На самом деле он работал очень хорошо в первый раз, когда я попытался – RaJ