[問題] 格式化寫入檔案錯誤

看板C_and_CPP (C/C++)作者 (小王)時間13年前 (2012/09/12 21:02), 編輯推噓6(608)
留言14則, 9人參與, 最新討論串1/1
首先,第一次在PTT上發文,操作還不熟請見諒... 我今年高一,想自學C++ 最近在練習fstream的用法 如下 #include <iostream> #include <fstream> using namespace std; int main() { fstream in; in.open("test.txt",ios::in); in.seekg(0,ifstream::end); long bs = in.tellg(); char* b=new char[bs]; in.seekg(0,ifstream::beg); in.read(b,bs); ofstream out; out.open("test.txt",ios::out); out.write(b,bs); out.seekp(0,ofstream::end); out<<"hello"; out<<endl; in.close(); out.close(); delete [] b; return 0; } 我現在有一個test.txt的檔案 我想要每次執行就寫入一個"hello"到檔案裡 執行第一次很正常: hello 但執行多次後竟會變這樣: hello ihello hello hello 第二行第一個字會隨機變亂碼,而且每一行前面會多出一個空格 語法我都是在網路上看來的,寫這個純粹是想要練習 但我改了好幾次都沒辦法成功 久聞PTT高手雲集,新手特來請教...... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.124.149

09/12 21:39, , 1F
學程式語言找書學比找網路學還好 去找幾本書來啃吧
09/12 21:39, 1F

09/12 21:54, , 2F
我覺得C比C++好學多了.看起來是跟endl有關 可是我不會C++
09/12 21:54, 2F

09/12 21:56, , 3F
ios::in | ios::binary ??
09/12 21:56, 3F

09/12 22:08, , 4F
謝謝!加了binary就可以了
09/12 22:08, 4F

09/12 22:08, , 5F
加了ios::binary後面好像會出現很多奇妙空白字元
09/12 22:08, 5F

09/12 22:10, , 6F
真的是看書最實在...
09/12 22:10, 6F

09/12 22:13, , 7F
提一下, 依述敘純粹是猜 "\r\n" 被寫成 "\n",所以看起來
09/12 22:13, 7F

09/12 22:14, , 8F
就像原 po 講的「亂碼」(其實是一個小黑格,換行,空格?)
09/12 22:14, 8F

09/12 22:23, , 9F
建議原PO可以用16進位編輯器去開那個TXT檔觀察
09/12 22:23, 9F

09/12 22:24, , 10F
好多隔空DEBUG神人XD
09/12 22:24, 10F

09/13 01:26, , 11F
強烈建議找本書吧 洪維恩就不錯
09/13 01:26, 11F

09/13 01:26, , 12F
網路知識不僅混亂 而且錯誤很多
09/13 01:26, 12F

09/13 01:29, , 13F
都說蠢問題了有誰會理你
09/13 01:29, 13F

09/13 01:34, , 14F
痾...?
09/13 01:34, 14F
文章代碼(AID): #1GK8Vldx (C_and_CPP)
文章代碼(AID): #1GK8Vldx (C_and_CPP)