0

学校向けの単純な Mad Libs プログラムをコーディングしています。私が投稿しているコードは、特定のプロンプトを検索する配列を反復処理します。見つかったら、プロンプトを使用して質問し、回答を記録します。ただし、私の答えを保持する配列は、最初の変数を除いて、すべての単語の最初の文字を省略しています。これが私のコードと配列からの出力のコピーです。それは私が知っているたわごとですが、私は学んでいます。

char buffer[256];
int y = 0;
//iterates through array looking for answers
for(int i = 0;i <= 256;i++)
{
    if(storyArray[i][0] == '<' && isalpha(storyArray[i][1]))
    {
        for(int x = 0; storyArray[i][x]; x++)
        {
            switch(storyArray[i][x]){
                case '<':
                    cout << "\t";
                    x++;
                    putchar(toupper(storyArray[i][x]));
                    break;
                case '>':
                    cout << ": ";
                        cin.ignore();
                    cin.getline(buffer,256);
                    strcpy(answerArray[y],buffer);
                    y++;
                    break;
                case '_':
                    cout << " ";
                    break;
                default:
                    cout << storyArray[i][x];
                    break;

            }
        }
    }
}

出力: Arrayitem1 rayitem2

4

1 に答える 1

0

最初の文字を見逃すように言っています。それが次のことです。

cin.ignore();

それを取り出せば大丈夫です。

于 2013-03-19T01:56:56.723 に答える