2011-07-12 5 views
1

私はこの機能を書いて、1つのファイルの内容をもう1つのファイルにコピーします。私はwhileループでgetline()関数を使用しています。何とか、コンパイラは私にエラーを与えます。なぜなのかご存知ですか? 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

私たちはコンパイラエラーを推測させないでください – antlersoft

+3

正確なコンパイラエラーとは何ですか? – Nobody

+1

どのようなエラーとコード行ですか?私はideoneで試してみましたが、うまくコンパイルされているようです:http://ideone.com/BO7tY –

答えて

10

getlineが定義されている<string>ヘッダーファイルを含めることに失敗したことが1つの問題です。

+0

ご協力ありがとうございます。 – GKED