gpt4 book ai didi

c++ - 格式不匹配时停止阅读

转载 作者:太空狗 更新时间:2023-10-29 23:09:21 25 4
gpt4 key购买 nike

我有一个文件,例如:

 1.0000000e+01   8.0123000e+01   1.0000000e+01   1.0000000e+01   1.0000000e+01
-1.0000000e+01 1.0000000e+01 1.0001110e+01 1.0000000e+01 1.0000000e+01
1.0000000e+01 1.0000000e+01 -5.0000000e+01 1.0000000e+01 1.0000000e+01
//... (repeated scientific numbers)
1 2 3 4
2 4 5 60
100 3 5 63
//... (repeated integer numbers)

我想从 C++ 文件中读取这些数字,但只有科学格式的数字,所以我需要代码在数字格式更改时停止。我还有一个优势,即 float 位于 5 列中,而整数位于 4 列中。

那么,在 C++ 中执行此操作的最佳方法是什么?

最佳答案

忽略 EOL(继续读取整数):

typedef double d[5] Datum;
Datum d;
vector<Datum> data;
while (true) {
Datum t;
istr >> t[0] >> t[1] >> t[2] >> t[3] >> t[4];
if (!istr) break;
data.push_back(t);
}

使用列数和 EOL:

while (istr) {
string line;
getline(istr, line);
Datum t;
istringstream temp(line);
temp >> t[0] >> t[1] >> t[2] >> t[3] >> t[4];
if (temp.fail()) break;
data.push_back(t);
}

关于c++ - 格式不匹配时停止阅读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5499573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com