1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) 
{

       char p,q;
       printf("Hello enter char: ");
       p=getchar();
       printf("the char is: %c\n",p);

       printf("Hello enter char: ");
       q=getchar();
       printf("the char is: %c\n",q);
    return 0;
}

(2 番目の printf と scanf の出力が、プログラムを終了する前に char を入力するのを待っていないのはなぜですか? .....つまり、q=getchar() と書かれている場所を知っているということです;??? 待つべきではありませんプログラムを終了する前に char を入力するには? しかし、何らかの理由で、次の行に進むとプログラムが終了するだけです...

4

3 に答える 3

1

Enter キーを押すと、文字 '\n' が入力されます。したがって、2 番目の文字を入力する前に getchar() が使用されました。以下のコードが必要だと思います。

#include <stdio.h>
#include <stdlib.h>

int main(void) {
    char p,q;
    printf("Hello enter char: ");
    p=getchar();
    printf("the char is: %c\n",p);

    int c; 
    while((c = getchar()) != '\n' && c != EOF && c != ' ') ; 

    printf("Hello enter char: ");
    q=getchar();
    printf("the char is: %c\n",q);
    return 0;
}
于 2013-11-04T05:12:48.897 に答える