0

scanf()に改行文字を入れずに入力バッファをフラッシュするにはどうすればよいですか?私の教授はそれが好きではないからです。fflush();を試しました。しかし、それは機能しませんでした。

#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;
}
4

1 に答える 1

3

fflush出力ストリームに対してのみ定義され、未定義の動作fflush(stdin)を呼び出します。

これを調べて、バッファ内の入力を破棄できます: 入力をフラッシュするために何を使用できますか?

于 2012-09-27T13:49:57.430 に答える