2016-12-23 16 views
1

私はCで複数のgetcharを使用するにはどうすればよいですか?

char input1; 
char input2; 

printf("Please enter two characters\n"); 

input1=getchar(); 
input2=getchar(); 
printf("The first character you enetered is "); 
putchar(input1); 
printf("\n"); 
printf("The second character you enetered is "); 
putchar(input2); 
printf("\n"); 

return 0; 

を見ていない問題は、誰かが私が間違ってやっているものを私に言うことはできますか?私はCに新たなんだと、私はこの問題への答えを見つけることができませんか

+2

あなたの問題は何ですか? –

+4

しかし問題は何ですか? – mathematician1975

+2

あなたは押されたキーをすぐに見たいと思うかもしれませんが、2文字を入力し+ endを入力してから両方を見なければなりません。 – i486

答えて

1

文字を入力してEnterキーを押すたびに、改行文字も入力します。

input1=getchar(); 
getchar(); 
input2=getchar(); 
getchar(); 

をそれとも、一度に文字入力することができます:自明、あなたが改行を消費する別のgetchar関数を()を使用して、それを修正することができます。

また、getchar()intを再実行します。したがって、input1input2のタイプをintに変更し、エラーチェックを行います(失敗した場合はEOFを返すことができます)。

3

ループ内にgetcharを配置できます。入力が改行またはスペースの場合は、ループを続行します。このループは、両方の入力変数が割り当てられると終了します。入力が改行や空白で区切られているかどうかは関係ありません。

#include <stdio.h> 

int main(){ 
    char input1 = '\0'; 
    char input2 = '\0'; 
    int c = 0; 

    puts("Please enter two characters"); 
    while ((c = getchar ())) { 
     if (c == '\n' || c == ' ') { 
      continue; 
     } 
     if (c == EOF) { 
      puts ("could not get input"); 
      return 1; 
     } 
     if (input1 == '\0') { 
      input1 = c; 
      continue; 
     } 
     input2 = c; 
     break; 
    } 
    puts("The first character you enetered is "); 
    putchar(input1); 
    putchar('\n'); 
    puts("The second character you enetered is "); 
    putchar(input2); 
    putchar('\n'); 

    return 0; 
} 
関連する問題