2017-01-12 2 views
0

Я пытался научить себя C с сайта http://www.cprogramming.com/. Я пришел к коду, который требует ввода номера.Нажатие enter в программе ввода C

Вот код:

#include <stdio.h> 

int main() 
{ 
    int this_is_a_number; 
    printf("Please enter a number: "); 
    scanf("%d", &this_is_a_number); 
    printf("You entered %d", this_is_a_number); 
    getchar(); 
    return 0; 
} 

Однако, когда я запускаю это, и попробуйте ввести число в командной строке, окно командной строки просто закрывается. Любая помощь будет очень оценена.

+0

с и с ++ являются не то же самое – user463035818

+0

плохо удалить тег – user138774

+1

Просто запустите программу из терминала и вам не нужно возиться с «держать окно открытым» ... –

ответ

2

scanf считывает номер, но оставляет символ новой строки, введенный во входной поток.

So getchar извлекает его немедленно, а не ждет дополнительного ввода.

Вы можете добавить другой звонок в getchar. Это, наверное, самое простое решение для вашей простой программы.

1

Используйте другой getchar();, чтобы использовать символ новой строки, оставленный вызовом scanf(); так что второй getchar(); будет провести подсказку.

getchar(); 
getchar(); 
... 

Обычно вам это не понадобится. Но если вы используете exe ​​ (обычно Windows) и хотите, чтобы подождал в конце (что, как представляется, здесь), этот трюк будет делать.

-3

программа в порядке, возможно, компилятор настроен неправильно.

+0

Нет, это не так. Программа и компилятор ведут себя как определено. – Gerhardh

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