C++ 为什么getline在循环中使用时忽略输入的第一个字符? do { 系统(“cls”); cout

C++ 为什么getline在循环中使用时忽略输入的第一个字符? do { 系统(“cls”); cout,c++,C++,您可以使用以下命令。在c=getche();行之后使用cin.ignore();: charc; 做 { 系统(“cls”); cout您可以使用以下命令。在c=getche();行之后使用cin.ignore();: charc; 做 { 系统(“cls”); 你知道标题中你的问题的答案吗 char c; do { system("cls"); cout<<"Enter Item Name:"<<endl; cin.get

您可以使用以下命令。在
c=getche();
行之后使用
cin.ignore();

charc;
做
{
系统(“cls”);

cout您可以使用以下命令。在
c=getche();
行之后使用
cin.ignore();

charc;
做
{
系统(“cls”);

你知道标题中你的问题的答案吗

char c;
do
{
        system("cls");
        cout<<"Enter Item Name:"<<endl;
        cin.getline(item_name,size);
        cout<<item_name<<endl;
        cout<<"Enter Item Price:"<<endl;
        cin>>item_price;
        cout<<" Do You Want To Add More Item..?\nPress Y/N."<<endl;
        c=getche();
        cin.ignore();
}while(c=='y'||c=='Y');
cin
读取下一个字符并将其丢弃

我认为,你正在努力解决的真正问题是:如何终止循环

这很简单。不要只比较一个字符。比较整行

cin.ignore();
do
{
系统(“cls”);

你知道标题中你的问题的答案吗

char c;
do
{
        system("cls");
        cout<<"Enter Item Name:"<<endl;
        cin.getline(item_name,size);
        cout<<item_name<<endl;
        cout<<"Enter Item Price:"<<endl;
        cin>>item_price;
        cout<<" Do You Want To Add More Item..?\nPress Y/N."<<endl;
        c=getche();
        cin.ignore();
}while(c=='y'||c=='Y');
cin
读取下一个字符并将其丢弃

我认为,你正在努力解决的真正问题是:如何终止循环

这很简单。不要只比较一个字符。比较整行

cin.ignore();
do
{
系统(“cls”);

cout什么是
getche
?@iBug
getche
是Windows平台特有的读取单个字符的功能(无需按
Enter
键)和回显。它在
conio.h
头文件中声明。什么是
getche
?@iBug
getche
是Windows平台特有的函数,用于读取单个字符(无需按
Enter
键)并回显。它在
conio.h
头文件中声明。