簡體   English   中英

程序未運行輸入文件

[英]Program not running input file

這是我的代碼:

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信息不會發生任何tin1.in

在類Unix操作系統中有一種內置的方法可以重定向stdin。 如果希望將stdin重定向到文件,則需要使用命令./proj <tin1.incat tin1.in | ./prog運行proj cat tin1.in | ./prog cat tin1.in | ./prog如注釋中所建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM