输入字符串后刷新标准输入,随后输入下一个字符
Flushing stdin after inputing a string, to subsequently input next char
我想输入一个字符串,随后是一个字符,以便在我的程序中进一步使用,但是每当我尝试输入一个超过 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);
我该如何正确处理这个问题?
运行 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);
我想输入一个字符串,随后是一个字符,以便在我的程序中进一步使用,但是每当我尝试输入一个超过 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);
我该如何正确处理这个问题?
运行 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);