gpt4 book ai didi

c++ - 程序未运行输入文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:02:42 24 4
gpt4 key购买 nike

这是我的代码:

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

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

/.proj tin1.in

如果我手动输入,它可以完美运行,但是当我尝试自动运行时,它不会执行任何操作,它似乎会永远运行。有什么想法吗?

最佳答案

您的程序“不执行任何操作”,因为它已运行到 scanf行并被阻止等待从命令终端接收标准输入。

./proj tin1.in只设置 argv 的“第一个”元素到“tin1.in”。

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

类unix操作系统中有一种内置的方法来重定向stdin。如果您希望将 stdin 重定向到文件,则需要使用命令 ./proj <tin1.in 运行 proj或cat tin1.in | ./prog正如评论中推荐的那样。

关于c++ - 程序未运行输入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22431777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com