我正在通过 for 循环读取一行中包含 5 个双精度的文件,并将它们存储到一个结构向量中,有时该行中的双精度数少于 5 个。该文件看起来像
111.111 222.222 333.333 444.444 555.555
666.666
777.777(空白) 888.888 999.999
struct temp_struct{
double d1,d2,d3,d4,d5
};
vector<temp_struct> data;
for(int i=0;i<3;i++)
File>>data.at(i).d1>>data.at(i).d2>>data.at(i).d3>>data.at(i).d4>>data.at(i).d5;
有没有办法测试 666.666 之后以及 777.777 和 888.888 之间的空白空间。
因为现在我正在读取它的方式,在 666.666 之后它将转到文件的下一行并读取 777.777 和 888.888 999.999 ,因此结构看起来像 data.at(1).d1=666.666 data.at(1 ).d2=777.777 data.at(1).d3=888.888 和 data.at(1).d4=999.999 我宁愿有
data.at(1).d1=666.666, break because of end of line
data.at(2).d1=777.777, data.at(2).d2=0, data.at(3).d3=888.8888
我正在用 VS2010 C++ 编程