我有下一个 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 的文件,因为我希望程序生成一个包含十个节点的图形。
当我输入:
./graph-test.run < input/graph-input.txt
它开始并从文件中无休止地读取,添加数百个节点。我希望它在文件完成后停止,让我做一些其他操作。
我怎样才能做到这一点?如果我手动插入值,代码运行良好,所以这是一个与输入相关的问题。