4

プログラムをデバッグしようとしていますが、intInputFile というファイルから値を読み取っています。ローカル変数を調べていたところ、intInputFile = incomplete type と表示されていました。調べてみましたが、明確な答えがなく、これが何を意味するのかわかりません。これは私のプログラムを台無しにしていると思うので、誰か説明してください。

ありがとう。

intInputFile >> fileInt;
cout << "check" <<endl;
while(!intInputFile.eof())
{
    intNode* anotherInt;
    anotherInt = new intNode;
   if(intList==NULL)
   {
       intList = anotherInt;
       lastInt = anotherInt;
       lastInt->nextNode = NULL;
       lastInt->nextNode = new intNode;
   }
   else
   {
      lastInt = lastInt->nextNode;
      lastInt->nextNode = NULL;
      lastInt->nextNode = new intNode;
   }
   lastInt->intValue = fileInt;
   intInputFile >> fileInt;
   cout << "good" <<endl;
}

最初の実行後、ファイルから最初の整数を正しく読み取りますが、デバッグ時に不完全な型に気付きました。また、 cout <<"good"; も含めました。それがその時点まで実行されるかどうかを確認し、私のプログラムが実行されたときに、「良い」と繰り返し表示するだけでした。

含まれるものは次のとおりです。

   #include <iostream>
   #include <string>
   #include <fstream>

そして、それを通常の ifstream タイプとして定義しました:

  int fileInt; //int read from input file
  ifstream intInputFile;
4

2 に答える 2

0

「不完全な型」とは、メッセージを表示するツール (ほとんどの場合、コンパイラーですが、この場合はデバッガー) が型がどのように見えるかを正確に認識していないことを意味します。型があることは認識していますが、どのメンバーが含まれているか、またはそれらがメモリ内でどのように配置されているかは認識していません。

デバッガーがこれを通知する場合、それはほとんど無害です。プログラムの実行には影響しませんが、デバッグ オプションが制限される可能性があります (不明な型のメンバーを表示する必要がある場合)。

コンパイラがこれを通知する場合、コンパイラはコードが実際に有効かどうかを確認できないため、重大な問題が発生しています。このエラーは通常#include、タイプを定義するヘッダーの行が欠落しているために発生します。

于 2012-12-19T08:52:37.930 に答える
0

欠落したインクルード、複数のインクルード、またはそのintInputFileコード行でタイプの定義が表示されない原因となったもの。

于 2012-12-19T07:01:04.363 に答える