入出力演算子を実装してみたのですが, ファイルを読み込んでくれません.
エラーは特にでてません.
どこを直せば良いか教えて頂きたいです.
ヒントや些細なことでも構いません!
よろしくお願いします!
c++
1#include <iostream> 2#include <fstream> 3 4using namespace std; 5class Sum{ 6public: 7 int x,y; 8 Sum(int x,int y){ 9 (*this).x = x; 10 (*this).y = y; 11 } 12 13 Sum(){} 14 15 friend istream& operator>>(istream& is,Sum& v); 16 friend ostream& operator<<(ostream& os, Sum v); 17 18}; 19 20// 入力演算子 >> を実装. 21// 第一引数: istream 型変数の参照.左側に cin 等がくるため,Sum のメンバ関数として実装できない. 22// 第二引数: Sum 型変数の参照.引数に与えられた変数のメンバ x, y の値に istream から受け取った値を入れ,改変したいため,参照で受け取る必要が有る. 23// 処理: 第二引数のメンバ x, y に標準入力から順番に値を読み取り格納 24// 戻り値: istream 型であり,第一引数の参照を返す. 25 26istream& operator>>(istream& is,Sum& v){ 27 28 is >> v.x >> v.y; 29 return is; 30} 31 32// 出力演算子 << を実装. 33// 第一引数: ostream 型の参照.左側に cout 等がくるため,Sum のメンバ関数として実装できない. 34// 第二引数: Sum 型.これは参照でなくて構わない.参照でも良い(こっちのほうが高速). 35// 処理: 第二引数のメンバ x, y から,x + y, x - y を計算し順に標準出力へ出力.間にスペース 36// 戻り値: ostream 型であり,第一引数の参照を返す. 37 38ostream& operator<<(ostream& os, Sum v){ 39 os << v.x + v.y << " " << v.x - v.y; 40 return os; 41}; 42 43 44 45int main() 46{ 47 int n; 48 cin >> n; 49 for (int i = 0; i < n; ++i) { 50 Sum a; 51 cin >> a; 52 cout << a << "\n"; 53 } 54 55 ifstream ifs("11th.stream.in"); 56 ofstream ofs("11th.fstream.out"); 57 ifs >> n; 58 for (int i = 0; i < n; ++i) { 59 Sum a; 60 ifs >> a; 61 ofs << a << "\n"; 62 } 63 64 return 0; 65}
カレントディレクトリに"11th.stream.in"がないだけでは?
回答1件
あなたの回答
tips
プレビュー