1

fstream および string inlcusions は .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;
                }   
            }
        }
    }
}
4

2 に答える 2

3
while (getline(dataFile, line))

最初の引数はストリームで、2 番目の引数は行が割り当てられる文字列です。2 番目の引数は正しいですが、最初の引数はstringオブジェクトであり、行が抽出されるファイル ストリームではありません。ストリームを渡すことになっていますinFile:

while (getline(inFile, line))
//             ^^^^^^
于 2013-11-06T01:24:29.203 に答える
1

あなたはそれが文字列ファイル名であり、ストリームでinfile.open(dataFile)あることを示唆しています。dataFileinfile

だから、代わりにgetline(dataFile, line)、あなたは意味しgetline(infile, line)ます。

タイプミス、きっと。

于 2013-11-06T01:24:39.750 に答える