[問題] [解決] 用 cat file | ./a.out 看不到

看板C_and_CPP作者 (LionsHeart)時間12年前 (2012/05/10 14:05), 編輯推噓0(0017)
留言17則, 2人參與, 最新討論串1/1
看來觀念錯得很離譜@@ 當我用 ./a.out -k 5 < inputfile 時 , 該目錄底下會生成一個檔案裡面是正確的結果 但是用 cat inputfile | ./a.out -k 5 目錄底下還是會有正確結果出來 但是螢幕上看不到任何輸出,用cat不是可以將最後的輸出印在螢幕上嗎? 以及 cat inputfile | ./a.out -k 5 > result 這樣也是會有檔案生成 (原本的output.txt 和 result) result這個檔案會完全是空的 螢幕上也是沒有印出結果 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.175.132.36

05/10 14:18, , 1F
按照你貼的code, 本來就沒有stdout啊 @.@
05/10 14:18, 1F

05/10 14:19, , 2F
可是用cat 指令 不是可以印出output file嗎?
05/10 14:19, 2F

05/10 14:20, , 3F
還是我搞錯了呢@@
05/10 14:20, 3F
※ 編輯: lions0164 來自: 1.175.132.36 (05/10 14:23)

05/10 14:31, , 4F
cat是印出inputfile,然後用pipeline傳給./a.out
05/10 14:31, 4F

05/10 14:31, , 5F
最後會印出的東西應該是a.out的stdout
05/10 14:31, 5F

05/10 14:32, , 6F
輸入第二行指令後是完全沒有任何output出現在螢幕上
05/10 14:32, 6F

05/10 14:33, , 7F
然後第三行的指令也是 生成的result是空的
05/10 14:33, 7F

05/10 14:33, , 8F
這樣到底是不是正常的結果呀 有點混亂了@@
05/10 14:33, 8F

05/10 14:34, , 9F
所以我就說你的程式根本沒有stdout呀
05/10 14:34, 9F

05/10 14:34, , 10F
你隨便在程式裡面加一行printf helloworld 就會有了
05/10 14:34, 10F

05/10 14:36, , 11F
那第三個指令 > result 是把結果輸出到result裡面
05/10 14:36, 11F

05/10 14:36, , 12F
為什麼result會是空的呢?
05/10 14:36, 12F

05/10 14:38, , 13F
> result也只是把a.out的stdout寫入result
05/10 14:38, 13F

05/10 14:38, , 14F
是因為 > 是把stdout的輸出改為result
05/10 14:38, 14F

05/10 14:38, , 15F
如果a.out本來就沒有stdout,當然就什麼都不會寫進去
05/10 14:38, 15F

05/10 14:38, , 16F
但是程式沒有stdout所以是空的?
05/10 14:38, 16F

05/10 14:39, , 17F
剛剛查了一下 原來是這樣 謝謝@@
05/10 14:39, 17F
※ 編輯: lions0164 來自: 1.175.132.36 (05/10 14:40)
文章代碼(AID): #1Fgrh3bR (C_and_CPP)