C ++:outFile错误:未声明outFile?

时间:2018-07-16 12:12:40

标签: c++ c++11

这是代码:

{
 //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,但似乎编译器无法识别出来。要么是我错过了什么。我不知道。如果有人可以帮助我解决这个问题,将不胜感激。

2 个答案:

答案 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();
}