我想输入一个字符串,然后输入一个字符,以便在程序中进一步使用。但是,每当我尝试输入一个长度超过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);
我应该如何正确处理此问题?
答案 0 :(得分:1)
循环运行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);