首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VS2013 中 fstream 讀寫文件輸出亂碼的常見原因

     編輯:程式設計綜合問答

問題代碼


char m[50]; // 未初始化,棧上隨機內容
read.write(m, 50); // 寫入亂碼

原因

  • `m` 未賦值,包含垃圾內存數據。
  • 缺少用戶輸入邏輯 (`cin.getline` 等)。
  • `fstream` 同時 `ios::in | ios::out | ios::app` 讀寫指針管理複雜,易出錯。

修正


fstream fs("f1.txt", ios::out | ios::app); // 僅寫入追加
string line;
cout << "輸入內容 (空行結束): ";
while (getline(cin, line) && !line.empty()) {
    fs << line << '\n';
}
fs.close();

讀取並顯示


fs.open("f1.txt", ios::in);
string content((istreambuf_iterator(fs)), istreambuf_iterator());
cout << content;
fs.close();
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved