gpt4 book ai didi

c++ - getline() 省略了数组输出的第一个字母。

转载 作者:行者123 更新时间:2023-11-30 17:53:35 25 4
gpt4 key购买 nike

我正在为学校编写一个简单的 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;

}
}
}
}

输出:数组项1rrayitem2

最佳答案

告诉它错过第一个字符。这就是它的作用:

cin.ignore();

把它拿出来,你就会没事的。

关于c++ - getline() 省略了数组输出的第一个字母。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15490138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com