構造体の中身に、int型の配列を使いました。
この配列に、キーボードから入力された数値を格納したいです。
定義している構造体
c
1typedef struct data{ 2 int cost; 3 char next_path[5]; 4 int next_cost[5]; 5 int check; 6}N_data;
メイン関数
c
1int main(void){ 2 N_data N_block[6]; 3 int n = 0; 4 printf("%d番目につながっているノード番号を入力してください\n", n); 5 fgets(N_block[n].next_path, 5, stdin); 6 printf("next_pathは%s", N_block[n].next_path); 7}
例えば、入力を
3 5
として、printfでN_block[n].next_pathを指定すると、
3 5
が返ってきます。これを、N_block[n].next_path[0]として0番目と1番目に分けて取得する方法はあるでしょうか?
やはり入力された数がいくつか確認する必要があるでしょうか?
よろしくお願い致します。
「N_block[n].next_path[0]」が'3'(文字)であることは理解していますか?
最終形として、どこにどのような値を格納(or出力)したいのでしょうか?
> 0番目と1番目に分けて取得する方法はあるでしょうか?
何の0番目と1番目なのか明記してください。
例えばキーボードから3と5の2つの値を入力して、配列に入れたとしたときに、0番目が3で1番目が5ということです。
文字でもいいので、3と5が返ってくるのではなく、3と5それぞればらばらに返る(出力される)ようにしたいです。
ええと、聞きたいのは、具体的な配列名ですよ。どこに3を入れて、どこに5を入れたいのか。next_path[0] と next_path[1] に入れるつもりなら明確な間違いなので。
next_path[0]とnext_path[1]に入ると思っていました。
next_pathには、fgetsで文字列を入力していますね。「3 5」と入力してEnterキーを押したなら、next_pathの先頭から、文字 '3', ' ', '5', '\n', '\0' の5つの文字が設定されます。なお、文字 '3' は数値 3 ではありません。
ありがとうございます。いただいた回答を踏まえてもう一度考えなおします。
回答1件
あなたの回答
tips
プレビュー