如何刷新I/o流?I';m使用scanf(),fflush(stdin)不起作用
如何在不将换行符放入scanf()的情况下刷新输入缓冲区?因为我的教授不喜欢。我试过了;但它不起作用如何刷新I/o流?I';m使用scanf(),fflush(stdin)不起作用,c,input,stream,scanf,C,Input,Stream,Scanf,如何在不将换行符放入scanf()的情况下刷新输入缓冲区?因为我的教授不喜欢。我试过了;但它不起作用 #include <stdio.h> #include <conio.h> int CountUpper(char S[],int n) { int i,cntr = 0; for(i = 0; i < n; i++) if(S[i] >= 'A' && S[i] <= 'Z') +
#include <stdio.h>
#include <conio.h>
int CountUpper(char S[],int n)
{
int i,cntr = 0;
for(i = 0; i < n; i++)
if(S[i] >= 'A' && S[i] <= 'Z')
++cntr;
return cntr;
}
int main(void)
{
int n,i;
printf("Enter n: ");
scanf("%d",&n);
char array[n];
for(i = 0; i < n; i++)
{
scanf("%c",&array[i]);
//fflush(stdin);
}
printf("Number of uppercase characters in array: %d\n",CountUpper(array,n));
getch();
return 0;
}
#包括
#包括
int CountUpper(字符S[],int n)
{
int i,cntr=0;
对于(i=0;i 如果(S[i]>=“A”和&S[i]fflush
仅为输出流定义,并且fflush(stdin)
调用未定义的行为
您可以对此进行研究以丢弃缓冲区中的输入:fflush
仅为输出流定义,并且fflush(stdin)
调用未定义的行为
您可以查看此项以丢弃缓冲区中的输入:因此无法刷新scanf()?我必须求助于getchar()?是的,您可以使用getchar()来吃掉一个char。因此无法刷新scanf()?我必须求助于getchar()?是的,您可以使用getchar())吃一个字符。搜索“scanfflush”时,可能会重复出现的字符,以及数百个其他字符。搜索“scanfflush”时,可能会重复出现的字符,以及数百个其他字符。