getchar() и буфер

114
16 апреля 2021, 21:00

Проблема такая: при любом раскладе переменная getchar a возвращает '\n' и выполняет default (goto x), не учитывая остальное. Как можно исправить сие недоразумение?

 X:
    int a;
    do
    {
        a = getchar();
    } while (a != '\n' && a != EOF);
    switch (a)
    {
    default:
        goto X;
        break;
    case '0':
        exit(0);
        break;
    case '1':
    printf("%s", "TEST");
    getchar();
    exit(0)
        break;
}
Answer 1

Как-то так, наверное:

int pred; // !!!
X:
int a = 0;
do
{
    pred = a; // !!!
    a = getchar();
} while (a != '\n' && a != EOF);
switch (pred) // !!! 
{
default:
    goto X;
    break;
case '0':
    exit(0);
    break;
case '1':
printf("%s", "TEST");
getchar();
exit(0)
    break;
}

Мои дополнения помечены // !!!. НЕ тестировал !!!

READ ALSO
Как записать данные в массив JQuery?

Как записать данные в массив JQuery?

Мне нужно, чтобы была запись в массив

77
d-*-block переписывает d-none

d-*-block переписывает d-none

Пытаюсь сделать адаптивную страницу

81
Как реализовать дорисовку линий?

Как реализовать дорисовку линий?

Проект - Создаются кружки и их должны связывать линии, кружки можно двигать и линии тоже будут вместе с ними двигатьсяПри создании 3+ кружков...

118