я хочу получить charchar дважды, но я не могу - PullRequest
2 голосов
/ 10 апреля 2011
int main()
{
    int r, c;
    r = getchar();
    c = getchar();
    putchar(r);
    putchar(c);
    printf("\n");
    return(0);
}

После считывания r программа выводит r и завершает работу.Я хочу, чтобы он запросил c и ввел его, но почему он этого не делает?

Ответы [ 2 ]

3 голосов
/ 10 апреля 2011

Вы вводите символы в одной строке или в 2 строки?

getchar() будет ждать, пока вы не нажмете ввод, и затем начнет анализ символов. Если вы ввели 2 символа в 2 разные строки, он будет читать первый символ , а затем \n символ .

Я имею в виду следующий ввод:

a
b

эквивалентно "a\nb".

getchar() захватит \n вместо b и напечатает a\n\n.

Вы хотите ввести оба символа, и только затем нажмите Enter.

2 голосов
/ 10 апреля 2011

Вы, вероятно, печатаете X + Введите . Первая getchar() читает символ X, а вторая getchar() читает новую строку, сгенерированную при нажатии Enter. Введите оба своих символа, не нажимая Enter.

...