1

我的程序假设输出 First Middle Last name 并忽略输入中的 , 。但是在我的程序中,逗号仍然在我的输出中,所以很明显我遗漏了一些东西。

#include <iostream>
#include <string>
using namespace std;
char chr;
int main()
{
string last, first, middle;
cout<< "Enter in this format your Last name comma First name Middle name."<<endl;   //Input full name in required format
cin>>last;                                                                          //receiving the input Last name 
cin>>first;                                                                         //receiving the input First name
cin>>middle;                                                                        //receiving the input Middle name
cout<<first<<" "<<middle<< " " <<last;                                              //Displaying the inputed information in the format First Middle Last name
cin.ignore(',');                                                                    //ignoring the , that is not neccesary for the new format
cin>>chr;

return 0;
}
4

1 回答 1

2

ignore函数作用于当前输入流(例如cin),并丢弃与第一个参数中指示的一样多的字符,直到找到作为第二个参数给出的分隔符​​(默认为EOF)。

因此,cin.ignore(',');在您打印给定的输入之后,您拥有它的方式将忽略 44 个字符,直到 EOF。这几乎肯定不是你想做的。

如果您想跳过逗号,那么您将需要cin.ignore(100, ',');在姓氏输入和名字输入之间进行调用。这将跳到输入中的下一个逗号(最多 100 个字符)。

于 2013-09-29T17:33:06.203 回答