如何将ifstream用作函数参数?

时间:2019-11-25 00:35:54

标签: c++ compiler-errors parameter-passing ifstream

当我创建以下函数时,

int readDataFromFile(ifstream&  openFileStream, Snowman data[ ]){
    double height;
    double weight;
    double temp;
    bool hat;
    string scarf;
    int count = 0;
    while(openFileStream >> height) {
        openFileStream >> weight;
        openFileStream >> temp;
        openFileStream >> hat;
        openFileStream >> scarf;
    }
    return count;
}

这些部分是错误的;

openFileStream >> height;
openFileStream >> weight;
openFileStream >> temp;
openFileStream >> hat;
openFileStream >> scarf;

结果:

  

对二进制表达式('std :: __ 1 :: ifstream'(aka'basic_ifstream')和'double')无效的操作数

我将在ifstream函数中打开main(),但是如何将其传递给另一个函数?

1 个答案:

答案 0 :(得分:-1)

看看下面的代码段,该代码段可在Windows上使用。注意ans.txt仅包含2个双精度值

#include <fstream>    
#include <iostream>

void printcontents(std::ifstream& inp)
    {
        double val1, val2;

        while (inp)
        {
            inp >> val1;
            inp >> val2;
        }

        std::cout << val1 << " " << val2 << std::endl;
    }

    int main()
    {       


            std::ifstream inp("C:\\somefolder\\ans.txt");

            printcontents(inp);