这是代码:
{
//Open and write to (virtual) memory
if (memory)
ofstream outFile;
const char *outputFileName = ("memory.txt");
outFile.open(outputFileName, ios::out);
outFile<<input<<endl;
outFile.close();
}
这是错误:
|32|error: 'outFile' was not declared in this scope|
现在看来我确实正确声明了outFile,但似乎编译器无法识别出来。要么是我错过了什么。我不知道。如果有人可以帮助我解决这个问题,将不胜感激。
答案 0 :(得分:0)
您缺少if({}
)的括号。
按照书面形式,该声明是唯一属于if的语句,并且在if完成后消失:
{
//Open and write to (virtual) memory
if (memory)
{
ofstream outFile;
const char *outputFileName = ("memory.txt");
outFile.open(outputFileName, ios::out);
outFile<<input<<endl;
outFile.close();
}
}
答案 1 :(得分:0)
if语句的范围(不带括号表示范围)是下一个语句(即直到下一个分号)。这意味着outFile
仅在if语句的范围内声明,正如EdChum在评论中指出的那样。您可能打算这样在整个块上放置括号:
if (memory)
{
ofstream outFile;
const char *outputFileName = ("memory.txt");
outFile.open(outputFileName, ios::out);
outFile<<input<<endl;
outFile.close();
}