c++ - 使用Vector函数C++从文件中读取特定数据

标签 c++ string file-io vector import

我是 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/

相关文章:

c++ - 创建 C/C++ 解析器/分析器的好工具

c++ - 是否可以获取传递给模板的函数的名称?

c - 如何避免动态分配内存以节省时间?

c++ - 想要创建许多不同的文件,但名称不同

c++ - Qt:如何在不阻塞主线程的情况下播放声音?

c++ - 如何在 C++ 中存储一对数字?

regex - 如何在标签中查找报价?

python - 在字符串中查找并替换多个逗号/空格实例,Python

c - 使用字符数组作为模块的输入来扫描 C 中的文件

c++ - 具有重叠 I/O 的 FILE_FLAG_NO_BUFFERING - 字节读为零