2017-04-03 10 views
0

を入力したときに、私は2つの入力を入力するようユーザーに尋ねる入力scanf関数を終了、ユーザーのプレスは、例えば

int x,y; 
scanf("%d %d",&x,&y); 

私は、ユーザが一つだけの入力を入力して(\ n)をEnterキーを押す場合はケースを必要とし プログラムは言う必要があります入力の不足数

どのような提案?

+3

'scanf()'の代わりに 'fgets()'を使います。 – chux

+0

'scanf'だけではこれを行うことはできません。 (これは 'scanf'ではできないことがたくさんあることが分かります)あなたがしたいこと - もう少し仕事ですが、無限に優れた柔軟性とエラーキャッチ可能性という点でうまくいきます - 'fscanf'などを使ってテキスト行*をテキスト行として読み込み、行を検査したり、フィールドに分解したり、何らかの形で解析したりすることです。時には、 'sscanf'は行を解析するためのまともな方法です。 http://stackoverflow.com/questions/36921431/c-fscanf-input-validationも参照してください。 –

答えて

0

既存のコードでは、両方の値を単一のscanf文で指定することはできません。次のようなものが試されます:

void main(){ 
    int a;char b; 
    printf("Enter two values\n"); 
    scanf("%d",&a); 
    top: 
    scanf("%c",&b); 
    if(b=='\n'){ 
     printf("Missing value\n"); 
     goto top; 
    } 
    printf("I got all values"); 
}