Очистка стандартного ввода после ввода строки для последующего ввода следующего символа - PullRequest
0 голосов
/ 27 декабря 2018

Я хочу ввести строку, впоследствии символ для дальнейшего использования в моей программе, но всякий раз, когда я пытаюсь ввести строку длиной более 10 символов, все, что осталось, уходит в мой следующий запрос ввода.Я попытался использовать scanf ("% * c"), но он не смог сбросить все мои данные.

char tab[11];
char c;
printf("Give me a string: ");
scanf("%10[^\n]%*c", tab);
printf("%s\n", tab);
printf("Give ma a char: ");
scanf("%c", &c);

Как правильно решить эту проблему?

1 Ответ

0 голосов
/ 27 декабря 2018

Запустите getchar в цикле, пока не прочитаете новую строку:

printf("Give me a string: ");
scanf("%10[^\n]", tab);

while (getchar() != '\n');

printf("%s\n", tab);
printf("Give me a char: ");
scanf("%c", &c);
...