1

あるファイルの内容を別のファイルにコピーするこの関数を作成しています。while ループで getline() 関数を使用しています。どういうわけか、コンパイラは私にエラーを出します。なぜなのかご存知ですか?これが私のコードです:

#include<iostream>
#include<cstdlib>
#include <fstream>

using namespace std;

// Associate stream objects with external file names

#define inFile "InData.txt" // directory name for file we copy from
#define outFile "OutData.txt"   // directory name for file we copy to

int main(){
    int lineCount;
    string line;
    ifstream ins;   // initialize input object an object
    ofstream outs;  // initialize output object
    // open input and output file else, exit with error

    ins.open("inFile.txt");
    if(ins.fail()){
        cerr << "*** ERROR: Cannot open file " << inFile
            << " for input."<<endl;
        return EXIT_FAILURE; // failure return
    }

    outs.open("outFile.txt");
    if(outs.fail()){
        cerr << "*** ERROR: Cannot open file " << outFile
            << " for input."<<endl;
        return EXIT_FAILURE; // failure return
    }

    // copy everything fron inData to outData
    lineCount=0;
    getline(ins,line);
    while(line.length() !=0){
        lineCount++;
        outs<<line<<endl;
        getline(ins,line);
    }

    // display th emessages on the screen
    cout<<"Input file copied to output file."<<endl;
    cout<<lineCount<<"lines copied."<<endl;

    ins.close();
    outs.close();
    cin.get();
    return 0;

}

ご協力ありがとうございました。

編集: 申し訳ありませんが、ここにエラーがあります: 1. "エラー C3861: 'getline': 識別子が見つかりません" 2. "エラー C2679: バイナリ '<<' : タイプ 'std: :string' (または受け入れ可能な変換がありません)"

4

1 に答える 1

12

問題の 1 つ<string>は、getline が定義されているヘッダー ファイルをインクルードしていないことです。

于 2011-07-12T20:16:22.437 に答える