2015-08-12 5 views
1

Я начал изучать программирование C с C Programming Language по Denis M Ritchie Я пытаюсь выполнить программу из этой книгиНе удается запустить программу

 #include <stdio.h> 
    /* count lines in input */ 
    main() 
    { 
     int c, nl; 
     nl = 0; 
     while ((c = getchar()) != EOF) 
     if (c == '\n') 
     ++nl; 
     printf("%d\n", nl); 

     getchar(); 

    } 

Однако все это я получаю пустой консоли и при вводе текста и нажмите клавишу ВВОД , значение не отображается. Я использую Visual Studio 2013 IDE.

+0

Могу ли я спросить, в чем причина его downvoting? – Rohit

+0

Вы не можете _run_ это? Я не могу _compile_ это, и сообщения об ошибках довольно очевидны. https://ideone.com/4xYDl5 – Melebius

+1

Что он должен делать? – ameyCU

ответ

2

Программа, которую вы отправили здесь, предназначена для подсчета количества строк.

Q. Однако все это я получаю пустой консоли и при вводе текста и нажмите войти, не отображается значение

A. Да, это ничего не показывает, потому что while ((c = getchar()) != EOF) ждет, пока вы не войдете EOF (использование ctrl + z, то вы получите номер для строк).

+0

. Предполагается, что Ctrl-C окончательно закончит программу. – alk

0
getchar(c); 

См. Объявление getchar.

 int getchar(void) 

Не имеет параметров. Разве это не дало вам ошибки.

И main должно быть int main.

+0

Нет ошибок не было – Rohit

+0

Почему нисходящий пояс объясните, пожалуйста. – ameyCU

0

Существует несколько вопросов. Во-первых, основным должен иметь тип, как правило, ИНТ

- main() 
+ int main() 

и ваша программа должна вернуть статус выхода

Во-вторых GetChar не принимает никаких аргументов, и возвращает введенную

http://www.tutorialspoint.com/c_standard_library/c_function_getchar.htm

- getchar(c) 
+ c = getchar() 

Вы можете скомпилировать свою программу, позвонив по телефону

gcc -Wall test.c -o test 

Где test.c - ваш код, а тест - двоичный. -Wall покажет все «предупреждение» (ошибки, которые не мешают выполнению программы)

+3

Он использует MSVC, а не GCC. – Melebius

+0

ну, тогда я не знаю, что такое эквивалентная командная строка, я буду рад получить ответ, отредактированный кем-то, кто знает –

0

Я считаю, что вы используете Windows, то лучше добавить:

system("pause"); 

Кроме того, чтобы использовать систему (» пауза "), только в Windows, вам необходимо включить другую библиотеку:

#include <stdlib.h> 

вы можете видеть результаты, но проблема здесь, является то, что у вас есть бесконечный цикл. Yo нужно проверить \ n, считать и когда у вас есть определенный номер, вы выходите из цикла.

Смежные вопросы