誰かが私のコードが悪いかどうかを調べることができますか?コマンドを実行すると、コマンドプロンプトがクラッシュします。 私のC++のプログラムは、私のコードが悪いですか?
私はこのセクションに問題を絞り込む:string result = "";
result = pwpasst (username, password, "admin", "123");
result = pwpasst (username, password, "root", "456");
result = pwpasst (username, password, "peter", "789");
は、私は動作しているよう3つの機能のうちの2をコメントアウトした場合。 + コードが悪いのか、コマンドプロンプトに問題があるのか分かりません。コードの
残り:
#include <iostream>
using namespace std;
string pwpasst (string username, string password, string un, string pw){
if (username == un && password == pw)
{
return "You are logged in!";
}
};
int main()
{
string username;
string password;
cout << "Enter your username: ";
cin >> username;
cout << "Enter your password: ";
cin >> password;
string result = "";
result = pwpasst (username, password, "admin", "123");
result = pwpasst (username, password, "root", "456");
result = pwpasst (username, password, "peter", "789");
if (result != "You are logged in!"){
cout << "Wrong password or username!";
} else { cout << result;}
}
'pwpasst 'を通るすべてのパスが値を返すわけではありません。 –
'(username == un && password == pw)'がfalseと評価された場合、未定義の動作が呼び出されます。 – George
予防策として、 '-Wall'のようなオプションをつけてコードをコンパイルしてください。この場合、' warning:制御は非void関数の終わりに達します。 ' –