C++ 错误:';myfile';未在此范围中声明
好的,我正试着把加密文本写入一个文件 由于某种原因,我得到了一个未在此范围内声明的编译错误 这是我的encryption.cpp文件: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
#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全局范围。别忘了添加#包含#包含。