ユーザーが「終了」と入力するまで、ユーザーからの入力を受け取り続けるプログラムを作成しようとしています。ユーザーが入力を入力するたびに、ユーザーが入力した単語数をプログラムに出力させたい。したがって、ユーザー側の次の入力:
hello how are you
次の出力が生成されます。
You entered 4 words.
しかし、1行の単語数をカウントするようにプログラムを作成するのに問題があります。次の行に進む前に番号をクリアしません。したがって、ユーザーからの入力を3回受け取った場合、それらの3行の単語の総数が合計されます。たとえば、次の入力:
how are you
i am good thank you
quit
次の出力が生成されます。
You entered 9 words.
ユーザーが入力した各行に続く単語数を出力したい場合(終了を除く)、つまり
>>how are you
<<You entered 3 words.
>>i am good thank you
<<You entered 5 words.
>>quit
これが私のコードの関連ビットです:
char *input;
int inum;
int inputLoop()
{
char quit[] = "quit";
inum = 0; //counts number of words
while (strcmp(input, quit) != 0)
{
cin >> input;
inum++;
}
cout <<"You entered " <<inum <<" words." <<endl;
ベクトルのようなものは使いたくない。私のグローバル変数は*charであるため、使用するものはすべて最終的に*charに変換する必要があります。(そして、特定の条件によっては、*inputがmainから*argv []に設定される可能性があるため、私のグローバル変数は* charです。)
私はいろいろなことを試しましたが、strcmp(input、quit)が入力行全体を比較して終了するのではなく、一度に1つの入力の単語を比較して終了するという事実を乗り越えることができないようです。ヘルプ。