【问题标题】:File "not declared in scope" even though it was [closed]文件“未在范围内声明”,即使它已 [关闭]
【发布时间】:2016-01-14 13:31:42
【问题描述】:

我的程序的一部分包括写入文本文件。我有:

#include<fstream>
#include<iostream>
#include<string>
#include<cstdlib>
#include<ctime>

using namespace std;

//I open the file "highscore.txt" here, read it, and then close it.

ofstream outfile;

outfile.open("highscore.txt", ios::out);

outfile<<score;

outfile.close();

我问了不同的人,它说它看起来不错,但是当我尝试编译它时却收到错误:

“outfile”未在此范围内声明

【问题讨论】:

  • 我只看到全局范围。你想做什么?你有 MCVE 吗?
  • 你的main()函数在哪里?
  • 你的主要功能在哪里?你不能在全局范围内运行代码
  • 这不是一个完整的例子,请提供一个更有意义的例子。
  • @skypjack 我怀疑 OP 的问题是这 他的完整示例 :)

标签: c++ file scope


【解决方案1】:

编辑:由于根据 OP,代码 在函数中,并且定义了 score,这很可能是计算机的情况 是个混蛋。重启理论上应该可以解决问题。

代码的逻辑是正确的。从语法上讲,有两个主要问题:它必须在函数中,并且必须定义score(尽管这与此错误无关)。

我猜测您来自 Python 之类的语言,您可以在其中直接运行代码。正如 Nathan Oliver 和 Fabio Turati 所指出的,您似乎缺少所有 C 和 C++ 程序都需要的 int main() 函数。

查看 documentation 的 ofstream 以查看代码的工作版本。

【讨论】:

  • 嗯,那个和score 没有定义。
  • 是的,也是。错过了。 >.>
  • 这根本不正确,除非一个名为score 的变量曾经神奇地出现在代码中... :-)
  • @skypjack 这只是我程序的一小部分。我已经定义了分数,当然我有上面的主要功能
  • @Ovi:您需要发布一个示例,该示例实际上显示了您在编译时遇到的错误。我将您的代码放在main() 中并添加了score,它编译并运行。看stackoverflow.com/help/mcve
猜你喜欢
  • 1970-01-01
  • 2013-02-17
  • 1970-01-01
  • 2021-12-16
  • 2013-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多