Visual Studio C ++完全忽略if语句或if语句中的行。 VS 2015

时间:2017-10-15 16:33:43

标签: c++ visual-studio if-statement

在我使用的任何其他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);
    }
}

回复和回答会有很大帮助。

1 个答案:

答案 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);
}