標準入力から変数を受け入れたいが、ユーザーが2つまたは3つの変数を入力できるように受け入れる変数の数を定義したくない。標準入力からのユーザー入力を受け入れる変数入力の量が変わる可能性がある
例えば、私が持っているでしょう:
char key;
char name1[100];
char name2[100];
printf("Hello! insert your command:\n");
scanf("%c %s %s",&key, name1, name2);
が、入力「Fジョン」と「Lジョン・ドウ」「X」は、すべてが受け入れられるように、2番目の名前を挿入するために必要なユーザーイマイチ。基本的には、入力の長さをあらかじめ決めておきたいのではなく、1,2または3の変数を受け入れるだけです。 scanfはこれを行う適切な方法ですか、それとも良い方法がありますか?
現在、それはあなたが変数に文字列から入力文字列全体と、その後sscanf()
を読むためにfgets()
を使用することができます
これは、文字と2つの*単語*(空白で区切られたトークン)を読むだけでなく、行の末尾これが望ましい場合は、99文字を超えて、次の '\ n 'まで捨てたいので、それ以上のコードが必要です)...それは望ましいかもしれません。望ましくないが、それにかかわらず、それは通常気付かれない微妙な違いである。 – Sebivor
@Seb Correct。私は、3つまでの名前コンポーネントを除いて、他には何もないと仮定します。 – DyZ