2017-10-15 10 views
-3

これは私が使用する他のIDEでは発生しませんが、VSのみです。Visual Studio C++ ifステートメントまたはifステートメント内の行を完全に無視します。 VS 2015

ifステートメントで 'std :: cout'を無視し、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); 
    } 
} 

回答と回答が大きく役立ちます。

+3

をあなたはそれがラインを「無視」を知っていますかC配列 – Tobias

+0

でそのような文字列を比較することはできませんか?私はそれを疑います。おそらくバッファリングしていると思うので、iostreamの仕組みは無視してください。または、ビジネスロジックが間違っています。デバッガでブレークポイントを指定して実行すると、どちらかが表示されます。 –

+0

s/'Auth_Key_Requested ==" K3knksh "'/'strcmp(Auth_Key_Requested、" K3knksh ")' – user0042

答えて

1

ifの場合を無視しないで、条件をfalseに評価するだけです。 Cスタイルの文字列(プリミティブなchar配列の文字列)を比較する方法は間違っています。これを行う正しい方法は、strcmp関数を使用することです。この関数は2つのCスタイルの文字列を取り、同じ場合は0を返します。正と負の値はhereで説明されています。 は、だからあなたの次のように文が読まなければならない場合:

if (strcmp(Auth_Key_Requested, " K3knksh ") == 0) 
{ 
    std::cout << " Auth_Key_Requested == True, GJ.\n "; 
    Sleep(5000); 
    exit(0); 
} else 
{ 
    Sleep(5000); 
    exit(0); 
} 
+0

ありがとうございました。 – MAXBD

関連する問題