在調試其他人的代碼時,我遇到了C++的fstream
對象,通過流操作符輸入和ios::app
之間的交互,這是我以前不知道的。ios :: app和用於輸入的fstream之間的交互
假設file.txt
存在幷包含文本數據。原始上下文中的fstream
是長期存在的並且用於輸入和輸出。
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream f("file.txt", ios::app);
string in;
f >> in;
cout << in << endl;
f.close();
return 0;
}
更改爲以下文件打開的語句解決該問題:
fstream f("file.txt");
預期(沒有提供輸出文件),錯誤處理代碼已被省略下面的代碼無法正常工作這是預期的行爲?如果不能用ios :: app打開一個fstream
對象,並希望通過流操作符輸入正確的行爲?
在64位Linux編譯使用g ++ 4.6.3和MinGW-G ++ 4.4.1在32位Windows 7
這個玩具的例子是從墨菲集刪除幾個項目後創建的。 – DuncanACoulter