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