0

次のコードを使用してグローバル istream* を読み込もうとしています:

/*Global Declaration*/
istream* fp;

/* in main */
ifstream iFile;
if(argc == 2)
  //open file code
  fp = &file;
else
  fp = &cin;
readFile;

/*readFile*/
readFile(){
  string line;
  while(fp.getline(line))
    cout<<line<<endl;
}

次のエラー コードが表示getlinefpれます。 getline(fp, line) を試しましたが、そこにもエラーがありました。

4

1 に答える 1

2

ポインタとして宣言しfpていますが、インスタンスとして使用しようとしています。readfile 関数は次のようになります。

void readFile()
{
    string line;
    while(std::getline(*fp, line)) // note the de-referencing of fp
    {
        cout<<line<<endl;
    }
}

(あなたのコードには、単なるタイプミスだと思われる他のいくつかの構文エラーもあります)。

于 2013-10-03T18:15:57.803 に答える