1

重複の可能性:
入力ファイルストリームを操作する

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をオーバーロードしてファイルを読み取らせるにはどうすればよいですか。

私のファイルは次のようなものだと考えてください

次のようなデータを含むsometextdocument.txt

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]

そしてcout << "Number of records read: " << number << endl; 、リターンストリームを実行したいのですが、cinがファイルを読み取るときにオーバーロードして機能させるにはどうすればよいですか?

4

1 に答える 1

-2

このようにしてみてください:それが役立つことを願っています

istream &operator>> (istream &in, char* fname){ 
  inFile.open(fname);
  char ch1;
  while (inFile.get(ch1)) {
       cout<<ch1;
  }
}
于 2012-11-12T19:09:19.450 に答える