#include <iostream>
#include <string>
#include <sstream> // don't mind this
#include <ctime> //don't mind this either
using namespace std;
int main() {
const string password = "hello"; //password
char word[100]; //if this were string and I put 2 words in my password it would output "invalid password" twice
do {
cin >> word;
cin.getline(word, 100);
if (word == password) { //if word is equal to password, break and move on past the loop
break;
}
cout << "Password invalid" << endl; //password not equal, it will move on to this and repeat until password is true
} while (true);
cout << "Password valid" << endl;
return 0;
}
私は数ヶ月間C++プログラミングを初めて経験しましたが、今は非常に良いコースを見ています。チュートリアルの1つでは、彼は上記のパスワードプログラムを作成します。私はいくつかのプログラムで遊んだことがあり、 "example password"のように2つの単語を入力すると "無効なパスワード"が2回出力されることに気づいた。私はそれが別の入力としてスペースを認識しているからです。私はいくつかの変更を加えたので、今度は2単語以上を入力すると無効なパスワードが1回だけ出力されます。しかし今、私は助けが必要な別の問題に直面しています。正しいパスワードを入力しようとすると、正しく機能しません。この謎に対する答えは何でしょうか?ヘルプは高く評価され、これは私と他の人がこれをもっと理解し、この問題を将来回避するのに役立ちます。スペースで問題が発生したC++パスワードプログラム
文字列はC++の組み込みデータ型ではないので、#includeを使用すると、C++プログラムで文字列クラスを使用します。文字列変数を文字列sとして宣言します。入力を 'cin >> s'としますが、これは最初の空白までの文字列を取ります。空白を含む文字列全体を取得するには、文字列入力関数getlineを文字列sとして使用します。 getline(cin、s); –
いつでもscanf( "%[^ \ n]%* c"、文字列)を使用できます。文字列をスペースで入力する。 –
ありがとうございました!これはうまくいった! – Danthecardboardman