C++ 错误:';myfile';未在此范围中声明

C++ 错误:';myfile';未在此范围中声明,c++,file,input,C++,File,Input,好的,我正试着把加密文本写入一个文件 由于某种原因,我得到了一个未在此范围内声明的编译错误 这是我的encryption.cpp文件: #include <iostream> #include <fstream> #include <string> class encrypt{ public: static void cryptText(std::string newpass) { int x

好的,我正试着把加密文本写入一个文件

由于某种原因,我得到了一个未在此范围内声明的编译错误

这是我的encryption.cpp文件:

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

class encrypt{
    public:
        static void cryptText(std::string newpass)
        {
            int x = newpass.size();

            int output[x -1];

            for(int i = 0; i <= x -1; i++)
            {
                output[i] = (int)newpass[i];
                std::cout << char(output[i] + x);
                //Here I am trying to write output onto the file. For some reason, though,
                //I get the error.
                myfile.open ("passwords.thaddeus");
                myfile << output << std::endl;
                myfile.close();

            }

            std::cout << std::endl;

        }

};
#包括
#包括
#包括
类加密{
公众:
静态空密码文本(std::string newpass)
{
int x=newpass.size();
整数输出[x-1];

对于(int i=0;i您错过了任何语言的基础知识……您的
myfile
定义在哪里?

您既没有声明也没有定义
myfile
变量

因此,它在当前上下文中不存在,这就是为什么会出现此错误


您错过了流myfile的这部分代码;

首先,您需要使用流的
,使用命名空间std;

然后声明您的
myfile
对象:
流myfile;


一般经验法则:标准库从不包含前缀为“my”的变量,供您在不声明的情况下直接使用。

您能否将代码和信息减少到仍然显示此特定错误的最低限度?您提供的大多数信息都不相关,只会影响问题的解决。也就是说,错误非常简单。此外,您还没有声明
myfile
,您在
output[i]处获得了超出范围的数组访问权限+x
带i==0@ShafikYaghmour我添加了那一行,但得到了相同的错误,但告诉我ofstream未在此范围内声明。@Syd是的,这是b/c示例还具有
使用命名空间std;
,这是不好的,因此您需要执行
std::ofstream myfile;
@Polentino myfile所属。它不是一个变量。它实际上与本例中使用的代码完全相同:文件名发生了更改。
of Stream myfile;
:直接取自此example@Syd不,它不是。是的,它是一个变量。不,它不是相同的代码。@Syd,因为它们定义了它。
流myfile;
@Syd
使用命名空间std;
您缺少需要
std::
因为谢天谢地,他的代码没有
使用名称空间std;
。投票通过了!是的,我已经测试过了,你需要将
使用名称空间std;
设置为头文件的*.h全局范围。别忘了添加#包含#包含。