【问题标题】:no instance of overloaded function "getline" matches argument list没有重载函数“getline”的实例与参数列表匹配
【发布时间】:2013-11-17 02:41:22
【问题描述】:

fstream 和字符串插入在 .h 文件中。我已经阅读了多人的问题,但似乎无法将其应用于我自己的问题。我试过放入 infile.getfile(dataFile, line)) 无济于事。 dataFile 只是一个员工列表。我仍然使用 getfile(dataFile, line) 得到相同的重载函数实例

{

    ifstream infile;
    infile.open(dataFile);
    if(!infile.good())
    {
        cout << "File is not open";
    }
    else
    {
        int i = 0;
        while(!infile.good())
        {
            string line;
            while (getline(dataFile, line))
            {
                if (line[0] == 'h' ) 
                {
                    HospitalEmployee newEmp;
                }   
            }
        }
    }
}

【问题讨论】:

    标签: c++ getline istream


    【解决方案1】:
    while (getline(dataFile, line))
    

    第一个参数是流,第二个参数是要分配行的字符串。第二个参数是对的,但第一个参数是string 对象,而不是从中提取行的文件流。你应该通过流,inFile

    while (getline(inFile, line))
    //             ^^^^^^
    

    【讨论】:

    • inFile 不是文件。它是一个输入文件流。
    • 完全没问题。 :)
    【解决方案2】:

    您的infile.open(dataFile) 建议dataFile 是字符串文件名,infile 是流。

    所以,你的意思不是getline(dataFile, line),而是getline(infile, line)

    错字了,我确定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-10
      • 2014-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多