_flushall() не работает при очистке буфера

#c #buffer

#c #буфер

Вопрос:

когда я пытаюсь использовать _flushall() для очистки буфера, я не могу поставить знак ,-,*,/, потому что он завершается, может кто-нибудь мне помочь? ‘

 printf("Podaj liczbe a:");
_flushall();
scanf_s("%lf", amp;a);
printf("Podaj dzialanie:");
_flushall();
scanf_s("%c", amp;dzialanie);
if ((dzialanie != ' ') amp;amp; (dzialanie != '-') amp;amp; (dzialanie != '*') amp;amp; (dzialanie != '/'))
{
    printf("Nieprawidlowy symbol dzialanian");
    system("pause");
    return -1;
}
printf("Podaj liczbe b: ");

system("pause");
return 0;
 

Комментарии:

1. В вызове scanf_s() отсутствует size аргумент. Пожалуйста, включите предупреждения компилятора. Я не могу скопировать точную строку здесь, потому что только мои глаза могут читать графические изображения текста.

2. Пожалуйста, отправьте код и выводите в виде текста (кодовые блоки). Не стесняйтесь также добавлять изображение, но не используйте только изображение.

3. Повторите » Пожалуйста, включите предупреждения компилятора «, например, перейдя -Wall -Wextra -pedantic в gcc / clang .

4. @PiotrZajkowski, не используйте scanf_s . Придерживайтесь scanf . scanf_s это расширение Microsoft, которое на самом деле не решает никаких проблем.

5. Спасибо, ребята, за вашу помощь, я новичок в программировании, я изменил scanf_s на scanf, затем я пытался указать размер scanf(), я ввел 1 в конце, но это не сработало, наконец, когда я поставил пробел перед %c это сработало.