看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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
EdisonX:google "io redirection" 05/15 23:51
diabloevagto:那就只是把你手動輸入的變成從檔案輸入形式 05/16 00:22
diabloevagto:也就是說,需要手動輸入的,他都會直接到txt檔找 05/16 00:23
Thanks~ 不過我還是不懂 Debug 模式要怎麼讀 有哪邊可以加入這行參數嗎 ? 不然有問題 很難抓錯誤 @@ ※ 編輯: cory8249 來自: 140.114.221.54 (05/16 00:40)
fjm31714:可以試看看freopen 05/16 00:45
EdisonX:http://ppt.cc/hlpp 你不懂的是什麼?想做的是什麼? 05/16 00:47
diabloevagto:我都是自己在cmd下命令 05/16 00:54
diabloevagto:他想問的應該是在codeblocks要怎樣用這樣的方式 05/16 00:55
我會在 cmd 下執行 這OK沒問題 但是可能會有些 bug 所以需要透過 IDE 去做 debug 看變數資料、暫停點等等 但是直接開下去 預設情況就沒有資料輸入 要從鍵盤自己打 所以都不會跑 因此想來問看看 有沒有辦法設定 CodeBlocks 讀取指定的 file 也就是讓 CodeBlocks 知道我要執行 " a.out < data.txt " 的功能 不然單單執行程式本體 全部資料 scanf() 都要手打鍵盤輸入 @@" ※ 編輯: cory8249 來自: 140.114.221.54 (05/16 01:11)
EdisonX:fjm31714 大推文應是你要的, freopen. 05/16 01:13
恩~ 成功了 應該是這樣沒錯 雖然有更動到原本的 code 但是少比重寫 File IO 簡單多了 感謝幫助 --- 補充一下 不知道為什麼 第一次跑的速度頗慢 大概要10秒鐘資料才會出來 原本是瞬間算完就輸出結果 ※ 編輯: cory8249 來自: 140.114.221.54 (05/16 01:34)
fjm31714:如果會用gdb的話可以考慮 用gdb也可以用<作Redirection 05/16 12:11
loveme00835:cmd 下 gcc 吧... IDE用多會懶 05/17 02:49
loveme00835:https://gist.github.com/2713313 養成習慣用 05/17 03:39
loveme00835:fprintf fscanf 改要讀寫檔都不是太大問題 05/17 03:40