C++ cin.ignore()在程序中不起作用

C++ cin.ignore()在程序中不起作用,c++,C++,我的程序假设输出第一个中间姓氏,并忽略输入中的。但是在我的程序中,逗号仍然在我的输出中,所以很明显我遗漏了一些东西 #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 Mid

我的程序假设输出第一个中间姓氏,并忽略输入中的。但是在我的程序中,逗号仍然在我的输出中,所以很明显我遗漏了一些东西

#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;
}
#包括
#包括
使用名称空间std;
char-chr;
int main()
{
最后一串,第一串,中间一串;
cout>first;//接收输入的名字
cin>>中间;//接收输入的中间名称

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

因此,按照您的方式,
cin.ignore(“,”);
将忽略44个字符,直到您打印出给定的输入后EOF为止。这几乎肯定不是您想要做的


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

在忽略逗号之前,您接受cin的名称吗?我也不认为您需要cin。ignore您能解释一下您希望它做什么吗?看起来您的
cin。ignore(',')
位于错误的位置[并且具有错误的参数]。在获取要忽略的字符串后调用
cin.ignore
,“
可能就是问题所在。在调用
cin.operator>
之前调用它,以获取最后一个、第一个和中间位置,以便在提取输入之前,
cin
已设置为过滤掉
,”
。我已尝试过更改cin.ignore(',');到cin.ignore(100','));把它放在cinlast和first之间我也把它放在了其他几个地方,这只会导致我的输出不出现。我的程序应该让用户输入他们的名字,格式是Last,first middle,然后output first middle Last,没有逗号。我给我的讲师发了一条信息,要求帮助我处理我的cin。忽略,这就是她所说的问题是,当你最后一次读入时,它包含逗号。因此你的cin.ignore需要两个参数,100,\n。在这种情况下,你不需要cin.ignore。只需先读入,然后读入中间。然后使用字符串函数“查找”使用逗号并创建一个子字符串,从最后一个从位置0开始到逗号之前的位置。问题是我不知道她在说什么。我知道如何放入查找函数,但第二部分我不知道。