isstreamからの入力があります
1 2
3 4
5 6
>>オペレーターをオーバーロードする isstream からこれを設定したいと思います
入力は次のようになります
Matrix m;
string input = "1 2 \n 3 4\n 5 6\n";
istringstream ss(input);
ss >> m;
>> isstream から行列を解析する演算子を実装するにはどうすればよいですか?
以下のコードを試してみましたが、peek 呼び出しは改行を無視しているようです
std::istream& operator>>(std::istream& is, Matrix& s)
{
vector<vector<int>> elements;
int n;
while (!is.eof())
{
vector<int> row;
while ((is.peek() != '\n') && (is >> n))
{
row.push_back(n);
}
is.ignore(numeric_limits<streamsize>::max(), '\n');
elements.push_back(row);
}
return is;
}