gpt4 book ai didi

c++ - 读取多列并将它们放入 C++ 中的 vector 中

转载 作者:搜寻专家 更新时间:2023-10-31 00:10:14 25 4
gpt4 key购买 nike

我有一个包含 15 列和 1000 多行值的文件。

45285785.00 45285797.00 45285776.00 45285795.00 45285785.00 45285803.00 45285769.00 45285773.00 45285771.00 45285795.00 45285771.00 45285798.00 45285796.00 45285797.00 45285753.00
35497405.00 35497437.00 35497423.00 35497465.00 35497463.00 35497468.00 35497437.00 35497481.00 35497417.00 35497479.00 35497469.00 35497454.00 35497442.00 35497467.00 35497482.00
46598490.00 46598483.00 46598460.00 46598505.00 46598481.00 46598480.00 46598477.00 46598485.00 46598494.00 46598478.00 46598482.00 46598495.00 46598491.00 46598491.00 46598476.00

我想阅读这个文件。我现在的做法是取 15 个变量,然后将它们分别放入 vector 中。

double col1, col2, ... , col15;
vector <double> C1, C2, ..., C15;
ifstream input('file');
while(input >> col1 >> col2 >> ... >> col15)
{
C1.push_back(col1);
C2.push_back(col2);
...
C15.push_back(col15);
}

有更好的方法吗?我的意思是不定义 15 个变量,在 while 循环中读取 15 列?

最佳答案

是的,有。

您可以考虑为所有列使用一个容器,例如vector<double> cols(15)并更换您的 C1, C2 ... C15带有 vector vector 的变量。然后你可以轻松地做某事:

for(int i=0; i<cols.size(); ++i) {
input >> cols[i];
C[i].push_back(cols[i]);
}

但是在这种情况下,您不知道何时您应该停止阅读。要修复它,您可以使用 input.eof()input.good()方法或 try catch fstream >>运算符的返回值,就像您之前在代码中所做的那样。

关于c++ - 读取多列并将它们放入 C++ 中的 vector 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39196689/

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