看板 C_and_CPP 關於我們 聯絡資訊
初次本版發文有不妥的地方請指正 在linux下用gcc編譯./執行 作業要求把txt檔案的每行照字母排序後輸出新的txt 基本上寫完沒問題 但我卡在兩個地方 1. 命令行 ./sort < old.txt > /tmp/new.txt 在sort.c中要怎麼引用這個old.txt? 我本來想用fopen取得argv的導入文件名但失敗 我寫個迴圈把argv[]裡面的東西印出來 但只有argv[0]是 ./sort 後面全是不相干的東西 把命令行的<>拿掉argv[1] argv[2]就正常=命令參數了(old.txt 和/tmp/new) 但作業要求不能動.sh檔案也就是不能改命令 而且亂打測試發現./sort < old.txt > abcdefg 會生成一個abcdefg檔案 內容是程式中printf結果(就不會顯示在terminal裡了) 請問命令行的文件名尖括號刮起來有什麼特別意義嗎? 2. 用fopen生成單個 new.txt沒問題但加上資料夾路徑/tmp/new.txt就創不出來也不會報錯 請問是出了什麼問題或是有什麼關鍵字可以找嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 31.205.252.179 (英國) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1571189446.A.E79.html
jerryh001: 不是<>而是<和>兩件事 <file表示stdin改成從file來 >fi 10/16 09:33
jerryh001: le表示stdout改成從file出去 10/16 09:33
Bencrie: 直接存取 stdin & stdout,這兩個 FILE 一開始就會先開好 10/16 09:37
x246libra: google "redirect 重導向 linux" 10/16 09:41
Schottky: stdin & stdout 就當作鍵盤輸入、螢幕輸出即可 10/16 09:46
roger840410: 真的非常感謝各位的指點 原來我一開始思考方向就錯 10/16 09:50
roger840410: 了... 感覺在學校的linux白學了(掩面) 10/16 09:50
Schottky: 你只是沒玩過 UVa 而已 (拍拍) 10/16 12:07
Bencrie: 呃 ... Windows 也是一樣啊 10/17 01:44
eye5002003: fopen可以建立檔案但是不會建立資料夾,你可以先用 10/23 12:40
eye5002003: boost::filesystem先把資料夾建好 10/23 12:41