C++ 有没有一种方法,我可以按下回车键而不输入任何内容,代码将假定下一步要做什么?

C++ 有没有一种方法,我可以按下回车键而不输入任何内容,代码将假定下一步要做什么?,c++,dev-c++,C++,Dev C++,我的任务是: “产品代码:(按Enter键) 如果未输入任何产品代码,系统仅显示另一个产品代码“ 因此,基本上我可以选择输入产品代码或按enter键,然后会出现另一个产品代码,我的问题是,如果用户选择按enter键而不是输入代码,如何显示产品代码 请注意,所有产品代码都已经是程序的一部分,用户只需输入产品代码即可更改其值 int main(){ int productcode; system("CLS"); cout << "Product Code : ";

我的任务是:

“产品代码:(按Enter键)

如果未输入任何产品代码,系统仅显示另一个产品代码“

因此,基本上我可以选择输入产品代码或按enter键,然后会出现另一个产品代码,我的问题是,如果用户选择按enter键而不是输入代码,如何显示产品代码

请注意,所有产品代码都已经是程序的一部分,用户只需输入产品代码即可更改其值

int main(){
int productcode;

    system("CLS");
    cout << "Product Code : ";
    cin >> productcode;
    return 0;}
intmain(){
int产品代码;
系统(“CLS”);
cout>productcode;
返回0;}
*在尝试了Kanthan的建议后更新

我能想出以下代码:

using namespace std;
int main()
{
    int d;
    int productcode;
    int p1;
    int d1;
    float v1, gt;
    char ans;
    d1=0;
    gt=v1=0;
    d=26;
    do{
    char code[40];
    system("CLS");
    cout<< "Product code : ";
    cin.getline(code,40,'\n');
    productcode=atoi(code);
    if(code[0]=='\0')
    {
        cout << '\n'<<"Random Product Code appears"<<'\n' << '\n';
        system("PAUSE");
    }

    else if(productcode>410 && productcode<15059){
            switch(productcode){
            case 1001:
                d1=1;
                p1=0;
                cout << '\n' << "Product Code : " << productcode << " - Product - Product Price     Number of Cans: ";
                cin >>  p1;
                if(p1==0){d1=0;v1=0;}   
                break;
            case 15058:
                system("CLS");
                cout << "Items Purchased:" << '\n';
                if(d1==1)
                    {
                        v1=p1*25;

                        cout << "1001 - Product - Product Price x " << p1 << " pc/s = " << v1 << '\n';
                    }
                lines();
                gt=v1;
                cout << "Grand Total : " << gt << " USD" << '\n' << flush;  
                system("PAUSE");
                system("PAUSE");
                break;
            case 8223:
                int mrd;
                mrd=3;
                do{
                    system("CLS");
                cout << "Are you sure that you want to go? Y/N: " << '\n';
                cin >> ans;
                if (ans=='Y'||ans=='y')
                {
                d=27;
                mrd=4;
                cout << '\n' << "Your total sales is " << gt << " USD." << '\n';
                system("PAUSE");
                }
                else if (ans=='N'||ans=='n')
                {
                    mrd=4;
                    cout << '\n' << "Your total sales is at " << gt << " USD." << '\n' << flush;
                    system("PAUSE");
                }
                else
                {
                    system("CLS");
                    cout << "Wrong input. Please try again." << '\n' << flush;
                    system("PAUSE");
                }
                }while(mrd<4);
                break;  
            default:
                system("CLS");
                    cout << "Product Code input is incorrect. Please try again." <<'\n' << flush;
                    system("PAUSE");
                    break;              
                }
        }
    else {
        system("CLS");
                    cout << "Product Code input is incorrect. Please try again." <<'\n' << flush;
                    system("PAUSE");
    }   

    }while(d<27);

}
使用名称空间std;
int main()
{
int d;
int产品代码;
int-p1;
int d1;
浮动v1,gt;
查尔安斯;
d1=0;
gt=v1=0;
d=26;
做{
字符码[40];
系统(“CLS”);

你可以这样做吗

#include <iostream>
#include <stdlib.h>


int myisdigit(const char *str);

int main()
{
    char str[40];
    int code;

    std::cout<<"Enter Product code:";
    std::cin.getline(str,40,'\n');

    if(str[0]=='\0')
    {
        std::cout<<"Next Product";
    }
    else
    {
        if(!myisdigit(str))
        {
            std::cout<<"Enter Proper Code";
            exit(1);
        }
        code=atoi(str);
        std::cout<<"Product Number:"<<code;
    }
}

int myisdigit(const char *str)
{

    while(*str)
    {
        if( ! ( ( ( *str ) >= '0' ) && ( (*str) <='9' ) ) )
            return 0;

        str++;
    }

    return 1;
}

您需要使用
std::getline
输入整行,然后根据行是否为空采取措施。如果不为空,则可以使用
stoi
将其转换为int可能会误导你。你知道循环的概念吗?@M.M,我可以知道一个代码示例程序如何检测行是否为空吗?@Bobby使用
empty()
std::string的成员函数
谢谢您的建议,但我遇到了一个新问题。请检查更新状态。@Bobby请提供一些有关您如何输入的信息
    std::string mystr;
    int code;
    const char *str;

    std::cout<<"Enter Product code:";
    std::getline(std::cin,mystr);

    str=mystr.c_str();