問題は、1行のユーザー入力から2つの値を1つのchar配列に格納する必要があるという問題です。形式は "input1 input2"となります。input1は 'C2'のような文字列で、input2は '1.25'のような整数またはdoubleです。ユーザーはこれらの値を区切るためのスペースだけで入力します。 例:C/CHの多次元配列に1行のユーザー入力を割り当てる
User Input
C2 1.25
もう一つは、私はCのスーパーセットとC++のサブセットであるChのプログラミング言語を使用しています。これまで私はちょうどいくつかのCコードが私のIDE(ChIDE)で動作しないことを学んでいます。私はまだ多くのC++を学んでいない。現在私が読んでいる本で、私はChとC/C++の間の移行点にいます。
これまでのところ私はいくつかのコード行を試しましたが、私の本には複数行のユーザー入力値を1行とオンラインでスキャンする例はありません。このfgetsコードは動作していますが、それは2D配列で動作させることはできません。
char userNoteName[15][15];
//15 is arbitrary, ideally I want to use variables
//and that the number of inputted values would be unknown.
printf("Enter notes one at a time, in the format A#4 3,\n");
printf("where the first string is the note, and the number\n");
printf("that follows is the duration.\n");
printf("Type Q when you are done entering notes.\n");
fgets(userNoteName,15,stdin);
printf("%s",userNoteName);
私は完全にfgets関数を理解していない、と私はそれがまだ本の中で存在していないので、私のプロジェクトは、それを必要とは思わないので、私はまた、二つの配列を使用して試してみました。
ここは私の元々の考え方です。
char userNoteName[2][2];
scanf("%s%s", &userNoteName[0][0]);
printf("%s\n", userNoteName);
scanfが適切にフォーマットされていないため、これは間違っています。私はコーディングのためのより良い学習リソースを見つける必要があると思う。オンラインでさえ、私はこのアイデアのようなものを見つけるのに苦労しています。
単語を読み込み、その後にフロートを読むには、 '%s%f'を使用します。 – Barmar
ありがとうございました!私は試みました:scanf( "%s%f"、&userNoteName [0] [0]);それはエラーを出した。 – Codero
文字列と浮動小数点を引数として指定する必要があります。これは本当に基本的なCの構文です。 – Barmar