程序没有运行输入文件

时间:2014-03-16 01:09:02

标签: c++ linux

这是我的代码:

int i,u,v = 0;
scanf("%d%d",&N,&M );
Edge.resize(N+1);
for( i=1;i<=M;i++){
    scanf("%d%d",&u,&v );
    Edge[u].push_back( v );
}

所以,我正在阅读我输入的输入。例如:

6 7
1 2
1 3
2 4
3 5
4 5
5 6
3 4

但为了更容易输入,我已编译了我的文件。

g++ -O3 -ansi -Wall main.cpp -lm -o proj

并将这些数字插入名为:&#34; tin1.in&#34;的文件中。并尝试使用命令在终端中运行:

/.proj tin1.in

如果我手动输入,它可以很好地工作,但是当我尝试自动运行时,它似乎没有做任何看似永远运行的事情。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你的节目&#34;什么都不做&#34;因为它已经运行到scanf行并被阻止等待从命令终端接收标准输入。

./proj tin1.in仅设置&#34;第一个&#34; argv到&#34; tin1.in&#34;。

的元素

此参数不会自动打开文件tin1.in并读取它。由您的程序来读取和解析argv并解释参数的含义和打开文件或采取其他操作,但[我假设]您的程序不包含任何代码来执行此操作,因此{ {1}}信息。

在类似unix的操作系统中有一种内置方式可以重定向stdin。如果您希望将stdin重定向到文件,则需要使用注释中建议的tin1.in./proj <tin1.in命令运行proj。