2012-12-19 39 views
3

我正在嘗試調試我的程序,並且正在從名爲intInputFile的文件讀取值。我在看我的局部變量,看到它說intInputFile =不完整的類型。我試圖查找它,但沒有明確的答案,我不知道這意味着什麼。任何人都可以請解釋,因爲我認爲這搞亂了我的計劃。不完整類型,這是什麼意思?

謝謝。

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 < <「好」;看看它是否會運行到這一點,當我的程序執行時,它所做的只是重複顯示「好」。

下面是包括:

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

我把它定義爲一個普通ifstream的類型:

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

代碼片段將有助於調查確切的原因。 –

+2

也許它只是一個*不完整的類型* ... –

+0

@VallabhPatade我編輯了我原來的帖子。 –

回答

0

錯失包括或多個包括什麼引起的intInputFile類型的定義在該行代碼中不可見。

+0

我只用過iostream,字符串和fstream ... –

+0

@AA你需要告訴我們你在哪裏定義'intInputFile'和你的列表包括 –

+0

我編輯了我的原始帖子 –

0

「不完整類型」意味着給出消息的工具(通常是編譯器,但在您的情況下是調試器)並不確切知道類型的樣子。它知道這是一種類型,但不知道它擁有哪些成員或者如何將它們放在記憶中。

如果調試器告訴你這個,這是非常無害的。它不會影響程序的執行,但它可能會限制您的調試選項(如果您需要查看未知類型的成員)。

如果編譯器告訴你這個,你有一個嚴重的問題,因爲然後編譯器不能檢查代碼是否真的有效。此錯誤通常是由定義類型的標頭缺少#include行引起的。