scanf сохроняет в себя лишнее значение "\n" в C

#include <stdio.h>
#include <stdlib.h>

int main() {
    char scan;
    while (true)
    {
        printf(">>");
        scanf_s("%c", &scan);
        if (scan == 'c') {
            printf("\nC\n");
        }
    }
    return 0;
}

Во время первой итерации ввожу символ к примеру "c" и жму Enter чтобы завершить ввод На второй итерации выполняет printf(">>"); , но scanf_s("%c", &scan); не выполняется вместо этого переменная scan принимает значение \n возможно как-то сохраняет перенос строки из прошлого ввода.

Как это исправить и почему так происходит?

Ps: Бесконечный цикл был задуман


Ответы (0 шт):