最初の投稿なので、プロトコルを破った場合はお詫びします。
私は学校のためのばかげたプログラムに取り組んでいます、そして私は次のコードを持っています。
cout << "//Dictionary Program//\n\n";
cout << "Enter a command:\n's' - to search for a pattern at the beginning\n";
cout << "'e' - to search for a pattern at the end\n";
cout << "'c' - to search for a pattern anywhere in the word\n";
//Gather user input.
cout << "Please enter a command ('q' to quit): ";
cin >> userCommand;
cmdCheck = userCommand.find("secq");
while(cmdCheck < 0 || userCommand.length() > 1){
cout << "Please enter a valid command\n";
cin >> userCommand;
cmdCheck = userCommand.find("secq");
}
これはメニューを駆動していて、入力を検証しようとしています。1文字で、次の「secq」のいずれかである必要があります
即時ウィンドウのstring.find()でひどい時間を過ごしています。最終的にCXX0047になります:エラー:引数リストが関数と一致しません。他の場所で使っているので全くわかりません。
while状態は私には良くありません。プログラムに「v」を指定すると、最終的にはブロック内になりますが、cmdCheckが0と評価される「s」を指定すると、-1が返され、ブロック内に留まります。
最後に、cmdCheckを使用して別のエラーをコーディングしましたが、while条件でそれが発生し、どちらも機能しませんでした。
while(userCommand.find("secq") < 0 ...
私の最初の考えは入力バッファの問題でしたが、ローカルウィンドウでuserCmd変数を見ると、サイズ1の文字配列があります。文字だけがあり、バッファからのジャンクはありません(私が知る限り)
たくさんのネクタイができることはわかっています|| 各コマンドと一緒ですが、これは私の意見ではもう少しエレガントです。去年の決勝戦を見ましたが、条件文は醜いものでした。現時点では、それは原則の問題です。