我正在为学校编写一个简单的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 rrayitem2
答案 0 :(得分:0)
你告诉它错过了第一个角色。这就是它的作用:
cin.ignore();
拿出来,你会没事的。