[問題] 讀檔 a.out < data.txt (I/O Redirection)

看板C_and_CPP (C/C++)作者 (Cory)時間14年前 (2012/05/15 23:33), 編輯推噓1(1011)
留言12則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) 學校是 Linux 不過自己 Windows 跑也可以的樣子 問題(Question): 按照一般書上的寫法 檔案讀取應該都是用 fopen 跟 fscanf 之類的 可是老師作業都直接把 compile 好的 a.out 在 terminal 輸入 a.out < 123.txt 這樣就像是直接用 scanf() 讀取鍵盤輸入的樣子 直接把文字檔的內容都讀進去了 類似直接把資料灌到 buffer ? 想請問這樣的運作原理是什麼呢 ? 還有 如果要開 debug 模式 這要怎麼用 = =? 我在 CodeBlocks 找很久 只有 argument 參數而已 不知道這個奇怪的參數要加在哪 麻煩各位高手指點迷津 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.221.54

05/15 23:51, , 1F
google "io redirection"
05/15 23:51, 1F

05/16 00:22, , 2F
那就只是把你手動輸入的變成從檔案輸入形式
05/16 00:22, 2F

05/16 00:23, , 3F
也就是說,需要手動輸入的,他都會直接到txt檔找
05/16 00:23, 3F
Thanks~ 不過我還是不懂 Debug 模式要怎麼讀 有哪邊可以加入這行參數嗎 ? 不然有問題 很難抓錯誤 @@ ※ 編輯: cory8249 來自: 140.114.221.54 (05/16 00:40)

05/16 00:45, , 4F
可以試看看freopen
05/16 00:45, 4F

05/16 00:47, , 5F
http://ppt.cc/hlpp 你不懂的是什麼?想做的是什麼?
05/16 00:47, 5F

05/16 00:54, , 6F
我都是自己在cmd下命令
05/16 00:54, 6F

05/16 00:55, , 7F
他想問的應該是在codeblocks要怎樣用這樣的方式
05/16 00:55, 7F
我會在 cmd 下執行 這OK沒問題 但是可能會有些 bug 所以需要透過 IDE 去做 debug 看變數資料、暫停點等等 但是直接開下去 預設情況就沒有資料輸入 要從鍵盤自己打 所以都不會跑 因此想來問看看 有沒有辦法設定 CodeBlocks 讀取指定的 file 也就是讓 CodeBlocks 知道我要執行 " a.out < data.txt " 的功能 不然單單執行程式本體 全部資料 scanf() 都要手打鍵盤輸入 @@" ※ 編輯: cory8249 來自: 140.114.221.54 (05/16 01:11)

05/16 01:13, , 8F
fjm31714 大推文應是你要的, freopen.
05/16 01:13, 8F
恩~ 成功了 應該是這樣沒錯 雖然有更動到原本的 code 但是少比重寫 File IO 簡單多了 感謝幫助 --- 補充一下 不知道為什麼 第一次跑的速度頗慢 大概要10秒鐘資料才會出來 原本是瞬間算完就輸出結果 ※ 編輯: cory8249 來自: 140.114.221.54 (05/16 01:34)

05/16 12:11, , 9F
如果會用gdb的話可以考慮 用gdb也可以用<作Redirection
05/16 12:11, 9F

05/17 02:49, , 10F
cmd 下 gcc 吧... IDE用多會懶
05/17 02:49, 10F

05/17 03:39, , 11F
05/17 03:39, 11F

05/17 03:40, , 12F
fprintf fscanf 改要讀寫檔都不是太大問題
05/17 03:40, 12F
文章代碼(AID): #1FidTLEE (C_and_CPP)
文章代碼(AID): #1FidTLEE (C_and_CPP)