[問題] c++ 檔案輸出的一個問題

看板C_and_CPP (C/C++)作者 (看不到夢想的我)時間12年前 (2013/08/23 01:30), 編輯推噓3(3011)
留言14則, 2人參與, 最新討論串1/1
我是用Visual C的軟體,我想用"C++"的語法(非C),來做以下事情: 在in.txt檔案寫上"I like it",然候用c++讀取in.txt,並將in.txt的內容輸出到out.txt 。 程式碼如下: ifstream ifile("c:\\ctest\\in.txt", ios::in); ofstream oofile("c:\\ctest\\out.txt", ios::out); if(ifile.is_open()) cout << "in已開啟" << endl; else cout << "in檔案開啟失敗" << endl; if(oofile.is_open()) { oofile << ifile << endl; cout << "已將字串寫入檔案" << endl; } else cout << "檔案開啟失敗" << endl; ofile.close(); 我in.txt已經可以被開啟,但是要怎麼將in.txt的內容輸出到out.txt,黃色這段 要怎麼寫呢? 我這樣寫出來的結果竟然是: 0012FE70 這是啥?? 有點困惑了@@ 懇請版友指點!! 感謝!! -- ╭──╮ q ˙ . ╭════╮ ◤◥◤◥ 此路不通 ││ ˙在 一 起 ╰═ ╤ ═╯ ◣ ◢ ﹕. ˙ ‧ ‧ ███ ψsleeeve ███ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.224.117.208 ※ 編輯: sleeeve 來自: 36.224.117.208 (08/23 01:31)

08/23 01:57, , 1F
你要拿一個變數接進來 (ifile >> str;)
08/23 01:57, 1F

08/23 01:57, , 2F
再寫出去 (oofile << str;)
08/23 01:57, 2F

08/23 01:57, , 3F
直接上的方法不是沒有只是你 100% 看不懂
08/23 01:57, 3F

08/23 01:58, , 4F
是說 C 的時候也有 fscanf 進來再 fprintf 出去的做法
08/23 01:58, 4F

08/23 01:58, , 5F
跟那個概念是一模一樣的
08/23 01:58, 5F

08/23 05:54, , 6F
這需求比較容易看得懂的可能是迴圈加 getline(ifile, str);
08/23 05:54, 6F

08/23 06:18, , 7F
cout << ifile 的 ifile 被 basic_ios<..>::operator void*
08/23 06:18, 7F

08/23 06:19, , 8F
轉成位址..
08/23 06:19, 8F

08/23 06:28, , 9F
不過為什麼要可以轉成 void * 呢....以後應該會直接轉成bool
08/23 06:28, 9F

08/23 06:39, , 10F
關鍵字應該是 safe bool, explicit conversion operators
08/23 06:39, 10F

08/23 11:40, , 11F
C++11 確實是轉成 bool 了 在這之前則是轉成 void *
08/23 11:40, 11F

08/23 11:40, , 12F
預期用途是相同的 只不過改成顯式 bool 更安全
08/23 11:40, 12F

08/23 11:42, , 13F
恩恩,感謝大家!! 是想說ifile不是物件(用ifstream類別所建立的物件),還以為可以直 接傳給oofile...,原來還要透過新的變數。 ※ 編輯: sleeeve 來自: 1.160.45.103 (08/23 12:48)

08/24 14:49, , 14F
當然可以直接傳. 但是你要多載 operator<<
08/24 14:49, 14F
文章代碼(AID): #1I5aguHv (C_and_CPP)
文章代碼(AID): #1I5aguHv (C_and_CPP)