我是 C++ 的新手,在从文件导入特定数据(数字)时遇到困难。 我的输入看起来像:
Open High Low Close
1.11476 1.11709 1.10426 1.10533
1.10532 1.11212 1.10321 1.10836
1.10834 1.11177 1.10649 1.11139
1.09946 1.10955 1.09691 1.10556
1.10757 1.11254 1.09914 1.10361
1.10359 1.12162 1.10301 1.11595
1.09995 1.10851 1.09652 1.10097
我使用下面的代码来完全阅读第二列,但我只需要阅读特定的数据。例如第三行/第三列是1.10649
如何读取具体的数据?我是否需要使用 string 获取行/列,然后将其转换为 int 以便在 vector 中读取它?我愿意接受任何建议,如果有任何建议可以帮助我解决这个问题,我将不胜感激。
// Data import 2nd Column
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
#include <vector>
using namespace std;
int main()
{
const int columns = 4;
vector< vector <double> > data;
ifstream market_data("market_data.txt");
if (market_data.is_open()) {
double num;
vector <double> line;
while (market_data >> num) {
line.push_back(num);
if (line.size() == columns) {
data.push_back(line);
line.clear();
}
}
}
vector <double> column;
double col = 2;
for (double i = 0; i < data.size(); ++i) {
column.push_back(data[i][col - 1]);
cout << column[i] << endl;
}
system ("pause");
return 0;
}
最佳答案
索引需要使用整数值(size_t
准确),更改
for (double i = 0; i < data.size(); ++i) {
到
for( size_t i = 0; i < data.size(); ++i) {
// ^^^^^^
否则,从您的代码示例来看,一切似乎都很好。
关于c++ - 使用Vector函数C++从文件中读取特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33943153/