Member 12914219 Ответов: 2

Вопрос, связанный с get_char()


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

Что я уже пробовал:

int main(){
int c;
printf("Enter character");
c = getchar();
c=getchar();
c=getchar();

putchar(c);

}

2 Ответов

Рейтинг:
2

Patrice T

Цитата:
следующий код ниже только запрашивает ввод пользователя в первый раз....

Запрос на ввод данных пользователя-это
printf("Enter character");

Сколько раз вы ожидаете, что это предложение будет напечатано ?
С помощью отладчика поставьте точку останова и следуйте пошаговому выполнению, а также обратите внимание на переменную c.

Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
0

Jochen Arndt

getchar-ссылка на C++ [^] ждет нажатия клавиши и возвращает код, когда это произойдет или уже есть клавиша во входной очереди.

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

Если вы хотите обработать несколько символов, вы должны использовать цикл типа

do
{
    c = getchar();
    putchar(c);
}
while (c != 0x0d)