【发布时间】:2016-10-16 13:47:27
【问题描述】:
我的代码中不断出现此错误,使用了未初始化的局部变量“名称”。我设置了一个这样的变量
int 名称 = 0;
然后在代码中,
int name = name + 1;
我正在尝试将 name 设置为 0,然后将其添加 1,然后返回到开头并仍然等于 name + 1。问题是它一直将其放回 0。
为了让这里更容易,我正在谈论的部分。
int main()
{
int w = 0;
int choice;
cout << "1: Register\n2: Login\nYour Choice:"; cin >> choice;
if (choice == 1)
{
string username, password;
cout << "Select A Username: "; cin >> username;
cout << "Select A Password: "; cin >> password;
ofstream file;
file.open("data\\" + username + ".txt");
file << username << endl << password;
file.close();
main();
}
else if (choice == 2)
{
bool status = IsLoggedIn();
if (!status)
{
int w = w + 1;
cout << "Unsuccesfull Login!" << endl;
system("PAUSE");
if (w == 3)
{
return 0;
}
else if (w == 2)
{
main();
}
else if (w == 1)
{
main();
}
else if (w == 0)
{
main();
}
}
else
{
cout << "Succesfully Logged In!" << endl;
system("PAUSE");
return true;
}
}
}`
【问题讨论】:
-
好吧,你试图重新声明同一个变量两次,因为你两次都包含了类型。它没有给你我所期望的错误,但我预计会出现错误。
-
我确信这两个声明都在不同的范围内。代码编译失败,报错
error: redeclaration of ‘int name’。 -
@AlBundy 错误很清楚,这意味着变量在同一范围内声明了两次。除非他们发布完整的代码,否则我认为我们无法提供更多帮助......
-
@peval27:检查一下:goo.gl/5VKZj3。就像您说的那样,错误消息会有所不同。没有关于未初始化的变量!
-
@AlBundy 您在此处发布的代码是
int main() { int name = 0; int name = name + 1; },这是不正确的。你声明了同一个变量两次。
标签: c++ variables initialization int local