首页 > 解决方案 > 试图理解 C++ 代码,读取文件

问题描述

float process(float Beta, std::ifstream & INPUT, float mass, float energy, int Juse = 1, int Jerror = 1, int intype = 1)
{
    float crosscons = 8 * M_PI * mass * mass / energy; //Creates a constant that is used to calculate the cross section

    int dwarf_count = 0;
    int dcol = 0;
    string line;
    string item;
    int header = 0;
    string skip("#");
    INPUT.seekg(0, ios::beg);
    while (getline(INPUT, line)) {
        if (contains(line, skip))
        {
            header++;
        } else {
            break;
        }
    }

第一点我知道它正在读取文件,但我不知道它在哪里读取文件或从哪里获取文件。在函数内部,我知道它正在尝试跳到数据,因为看起来文件充满了# 我对 C++ 真的很陌生,所以如果这真的很简单和愚蠢,我很抱歉。有什么帮助谢谢!

标签: c++

解决方案


我不知道它在哪里读取文件

调用INPUT.seekg()是寻找INPUT指向文件开头的流的读取指针,然后getline()循环从流中读取单独的文本行,直到到达流的末尾,或者#找到不包含的行,以先发生者为准。

或者从哪里得到它

从调用者process()那里获取INPUT流作为输入参数。调用者从哪里获取流,我们无法回答,因为没有显示足够的代码。您需要查看调用的代码process()以了解INPUT流的来源。


推荐阅读