次の C コードがあります。
#include <stdio.h>
#include <stdlib.h>
#include "list.h"
#include "graph.h"
int main() {
int action, src, dst;
IntGraph g;
g = newIntGraph();
while (1) {
printf("1 -> Add a nodes.\n");
printf("2 -> Add an arc.\n");
printf("3 -> Dump the graph.\n");
printf("4 -> BFS.\n");
printf("What do you want to do? [1, 2, 3, 4] ");
scanf("%d", &action);
switch (action) {
case 1:
addIntGraphNode(&g);
break;
case 2:
printf("Insert source and destination: ");
scanf("%d", &src);
scanf("%d", &dst);
addIntGraphArc(&g, src, dst);
break;
case 3:
dumpIntGraph(g, "GRAPH\0");
break;
case 4:
printf("Insert the node to start: ");
scanf("%d", &src);
BFSIntGraph(g, src);
break;
default:
return 0;
}
}
}
しかし、いくつかのテストを行うために必要なので、基本グラフを生成する準備ができた入力が必要です。
入力をファイルに書きました (1 行に 1 つの数値)。プログラムに 10 個のノードを持つグラフを生成させたいので、10 行と 10 個の 1 を持つファイルがあります。
入力すると:
./graph-test.run < input/graph-input.txt
ファイルからの無限の読み取りが開始され、数百のノードが追加されます。ファイルが終了したら、他の操作を実行できるように停止したいと思います。
どうすればこれを達成できますか? 値を手動で挿入するとコードはうまく機能するので、入力関連の問題です。