C++ 使用c+从txt加载浮点/双矩阵+;
这看起来很愚蠢,但我很难加载txt文件中的矩阵类型C++ 使用c+从txt加载浮点/双矩阵+;,c++,file-io,matrix,floating-point,C++,File Io,Matrix,Floating Point,这看起来很愚蠢,但我很难加载txt文件中的矩阵类型double。里面有签名的doubles之类的东西 11707.2 -919.303 -322.04 2260.71 2443.85 -4629.31 3082.64 -4209.86 -1741.71 298.192 -5658.34 2377.03 -3039 -2049.99 2788 -1915.9 等等,我有一个txt文件 我使用过fscanf、ifstream以及我发现并熟悉的各种东西,但我无法加载它。我在相关问题上找到了答案,但
double
。里面有签名的double
s之类的东西
11707.2 -919.303 -322.04 2260.71 2443.85 -4629.31 3082.64 -4209.86
-1741.71 298.192 -5658.34 2377.03 -3039 -2049.99 2788 -1915.9
等等,我有一个txt文件
我使用过fscanf
、ifstream
以及我发现并熟悉的各种东西,但我无法加载它。我在相关问题上找到了答案,但程序对我没有帮助
我需要将这些值保存到浮点数组中,但现在我只想能够正确加载它们,所有的值看起来都像我写的值
请帮忙?有人吗
相关问题:标准成语:
#include <fstream> // for std::ifstream
#include <sstream> // for std::istringstream
#include <string> // for std::string and std::getline
int main()
{
std::ifstream infile("thefile.txt");
std::string line;
while (std::getline(infile, line))
{
// process line, e.g. one matrix per line:
std::istringstream iss(line);
std::vector<double> m;
m.reserve(16);
double d;
if (iss >> d) { m.push_back(d); }
else { /* error processing this line */ }
if (m.size() != 16) { /* error */ }
// use m
}
}
#包含//用于std::ifstream
#include//for std::istringstream
#包含//用于std::string和std::getline
int main()
{
std::ifstream infle(“thefile.txt”);
std::字符串行;
while(std::getline(infle,line))
{
//工艺生产线,例如每生产线一个矩阵:
标准::istringstream iss(线);
std::向量m;
m、 储备(16);
双d;
如果(iss>>d){m.push_back(d)}
else{/*处理此行时出错*/}
如果(m.size()!=16){/*错误*/}
//使用m
}
}
如果矩阵数据分布在多行上,请相应地修改代码。另一个问题是相关的,但也涉及不同的编程语言。您能否共享您的ifstream
实现,我们可能会帮助您修复它。