C++ 不完整类型,这是什么意思?
我试图调试我的程序,并且从名为intInputFile的文件中读取值。我查看了我的局部变量,发现上面写着intInputFile=不完整类型。我试着查了一下,但没有明确的答案,我不知道这意味着什么。有谁能解释一下,因为我觉得这会把我的计划搞砸 谢谢C++ 不完整类型,这是什么意思?,c++,C++,我试图调试我的程序,并且从名为intInputFile的文件中读取值。我查看了我的局部变量,发现上面写着intInputFile=不完整类型。我试着查了一下,但没有明确的答案,我不知道这意味着什么。有谁能解释一下,因为我觉得这会把我的计划搞砸 谢谢 intInputFile >> fileInt; cout << "check" <<endl; while(!intInputFile.eof()) { intNode* anotherInt;
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;
}
Missed include或multiple include或导致
intInputFile
类型定义在该行代码中不可见的内容。“不完整类型”表示提供消息的工具(通常是编译器,但在您的情况下是调试器)不确切知道该类型的外观。它知道有一个类型,但不知道它有哪些成员,也不知道它们在内存中是如何排列的
如果调试器告诉您这一点,它是无害的。它不会影响程序的执行,但可能会限制调试选项(如果需要查看未知类型的成员)
如果编译器告诉您这一点,您就有一个严重的问题,因为编译器无法检查代码是否实际有效。此错误通常是由于定义类型的标题缺少
#include
行造成的。代码片段将有助于调查确切原因。可能它只是一个不完整的类型…@VallabhPatade我编辑了我的原始帖子。@K-ballo我不确定这是什么意思。嗯,如果它是一个不完整的类型,那么使用它的方式将是一个错误,所以它可能只是一个调试器的怪癖。。。它是一种已声明但未定义的类型。@AA您需要向我们显示您在函数中定义intInputFile
的位置以及您在函数中定义intInputFile的includesI列表,我是否必须在main中定义它?@AA您在定义它的行中是否给出任何错误?类似于预期的代码>在输入文件之前
?您尝试过std::ifstream吗?我在定义文件时没有遇到任何错误。不,我没有试过,但我会的。
#include <iostream>
#include <string>
#include <fstream>
int fileInt; //int read from input file
ifstream intInputFile;