[問題] C與C++檔案輸入輸出(換行 資料長度不一)

看板C_and_CPP (C/C++)作者 (快樂就好)時間14年前 (2011/12/17 16:31), 編輯推噓2(2018)
留言20則, 10人參與, 最新討論串1/1
我有一堆序列式命名的txt檔, 譬如 a1.txt, a2.txt, a3.txt,...... 而這些txt檔的內容像這樣: a1.txt | a2.txt | 1.23456 | 34.5555 2.34567 | 23.4444 3.45678 | 12.3456 | 23.5666 | 12.3334 | 每個tex檔的資料長度不一,我希望把這些txt檔的內容 存到一個container(vector或array),在將其內資料合併輸出到一個txt檔, 格式如下,接續上例: 合併檔.txt 1.23456 34.5555 2.34567 23.4444 3.45678 12.3456 23.5666 12.3334 --------------------------------------------------------------- 預計會碰到的問題: 1.要怎麼連續讀檔(a1.txt, a2.txt,...) 2.要怎麼讀取每一txt檔的資料,會遇到換行問題; 並存到一個container,用哪種container比較方便 3.怎麼合併成我想要的格式如上 最近再讀別人的code用 C 寫的,想說趁機學一下 C 的data IO, 好難懂啊,是不是 C++ 再這方面比較方便呢? 所謂的 Linux 程式設計是不是比較偏 C 啊? 看了一下下 Beginning Linux Programming 這本書,好像也用 C 實作. http://www.books.com.tw/exep/prod/booksfile.php?item=0010418239 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.103.153

12/17 16:36, , 1F
你的想法或是程式碼咧
12/17 16:36, 1F

12/17 16:50, , 2F
在同一行顯示法上面, 可能會有超出你預期的例外狀況.
12/17 16:50, 2F

12/17 16:52, , 3F
我先打算投入MATLAB的懷抱 把任誤解了 再回頭想怎麼用C做
12/17 16:52, 3F

12/17 16:53, , 4F
感覺 C++ 的IOstream lib.提供很多好用的函示應該比 C方便
12/17 16:53, 4F

12/17 16:54, , 5F
萬丈高樓平地起 依賴程式提供的方便 只是投機取巧 慎之
12/17 16:54, 5F

12/17 16:55, , 6F
的確很方便http://ideone.com/toYIO檔案IO你自己完成XD
12/17 16:55, 6F

12/17 17:19, , 7F
用stringstream處理檔名?
12/17 17:19, 7F

12/17 17:42, , 8F
嗯, 樓上的方法可以 不過我想熟悉一下 C 的寫法
12/17 17:42, 8F

12/17 17:43, , 9F
不難 但是我不熟 C, 回頭再想想怎麼用 C 做
12/17 17:43, 9F

12/17 19:22, , 10F
STL 的什麼 stream 的是我覺得 STL 最糟糕的設計耶
12/17 19:22, 10F

12/17 23:26, , 11F
請問換行的問題要怎麼解決呀
12/17 23:26, 11F

12/17 23:27, , 12F
用C++寫的話 可以用get 還是getline 把換行符號吃掉
12/17 23:27, 12F

12/17 23:27, , 13F
但是 C 呢
12/17 23:27, 13F

12/17 23:33, , 14F
連續檔名可以用 sprintf 來產生
12/17 23:33, 14F

12/18 18:02, , 15F
W大為何會覺得stream是糟糕的設計呢?
12/18 18:02, 15F

12/18 18:47, , 16F
getchar
12/18 18:47, 16F

12/19 12:19, , 17F
C++ 的 >> 等,考慮了擴充,卻無法兼顧易用,算是取捨吧
12/19 12:19, 17F

12/19 12:20, , 18F
printf 的 % 格式設定,的確比 >> 來得方便
12/19 12:20, 18F

12/19 13:10, , 19F
如果只是要這個功能的話要不要考慮paste?
12/19 13:10, 19F
文章代碼(AID): #1Ex5DNGJ (C_and_CPP)
文章代碼(AID): #1Ex5DNGJ (C_and_CPP)