在我使用的任何其他IDE中都不会发生这种情况,只有VS。
它忽略了' std :: cout'在if语句中,有时它会一起忽略if语句。
示范我整理了一个简单的程序。
#include <iostream>
#include <Windows.h>
void main()
{
char Auth_Key_Requested[10];
std::cout << " Enter Auth_Key { : } : ";
std::cin >> Auth_Key_Requested;
if (Auth_Key_Requested == " K3knksh ")
{
std::cout << " Auth_Key_Requested == True, GJ.\n ";
Sleep(5000);
exit(0);
} else if (Auth_Key_Requested != " K3knksh ")
{
Sleep(5000);
exit(0);
}
}
回复和回答会有很大帮助。
答案 0 :(得分:1)
它不会忽略if case,它只是将条件计算为false。比较C-Style Strings(它是原始char数组中的字符串)的方法是错误的。正确的方法是使用strcmp函数。此函数接受两个C-Style字符串并返回0(如果它们相同)。解释了正值和负值here。 因此,您的if语句应如下所示:
if (strcmp(Auth_Key_Requested, " K3knksh ") == 0)
{
std::cout << " Auth_Key_Requested == True, GJ.\n ";
Sleep(5000);
exit(0);
} else
{
Sleep(5000);
exit(0);
}