我想阅读包含矩阵数据转换成升压矩阵的文件。 “”已经应该有这样的事情运算符重载,我可以把它写入标准流(COUT)。 我不知道这有什么错走另一条路。 我是相当新的C ++,所以我猜我正在做有关文件流的不正确的假设,但它似乎它是有道理的。 这里是网页我要去:
http://www.boost.org/doc/libs/1_51_0/boost/numeric/ublas/io.hpp
http://www.cplusplus.com/reference/iostream/ifstream/ifstream/
这里是我的代码:
using namespace std;
matrix<double> M;
ifstream s("C:\temp\perm.txt", ifstream::in);
s >> M;
s.close();
std::cout << M;
下面是我的文件看起来像:
[4,4]((0,0,1,0),(0,0,0,1),(0,1,0,0),(1,0,0,0))
这里是一个小例子,请尝试一下,看看会发生什么。 如果这也不行,我怀疑的问题是,文件路径是错误或项目未能从文本文件阅读:
#include <boost/numeric/ublas/io.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <iostream>
#include <fstream>
int main()
{
boost::numeric::ublas::matrix<double> m;
std::ifstream s("C:\temp\perm.txt");
if (!s)
{
std::cout << "Failed to open file" << std::endl;
return 1;
}
if (!s >> m)
{
std::cout << "Failed to write to matrix" << std::endl;
return 1;
}
std::cout << "Printing matrix: ";
std::cout << m;
}