C++如何重載CIN讀取文件
我試圖用運算符重載以下..
struct myself
{
string myname;
}
istream &operator>> (istream &stream, myself &mm)
{
cout << "Enter my name:";
stream >> mm.myname;
return stream;
}
int main()
{
myself mm;
cin >> mm;
cout << mm.myname;
}
及其工作,能夠迴應我實際輸入的內容。
現在我想用
cout << "Enter file name to read: ";
//assume user type myfile.txt
cin >> readFile;
我如何重載我CIN,使其讀取文件進行。
考慮我的文件是一樣的東西,它包含類似
Map2D, [3, 2]
Dot3D, [25, -69, -33], [-2, -41, 58]
Map3D, [6, 9, -50]
Map2D, [3, 2]
Dot3D, [7, -12, 3], [9, 13, 68]
Map3D, [6, 9, 5]
Map2D, [3, 2]
Dot3D, [70, -120, -3], [-29, 1, 268]
Dot3D, [7, 12, 3], [-9, 13, 68]
Map3D, [1, 3, 8]
Dot2D, [5, 7], [3, 8]
然後數據
sometextdocument.txt我想cout << "Number of records read: " << number << endl;
然後做一回流,我怎麼超載它爲CIN讀取工作文件
在operator&<<(fname)函數中放置文件的讀取代碼 –
@GrijeshChauhan您可以詳細說明operator&<<(fname)函數中的文件讀取代碼,如果能夠顯示大量的示例代碼, 。 – user1777711
你爲什麼要改變'cin'的行爲?爲什麼不打開一個新的文件流? – meagar