我正在为商店里的文章写一个项目,我需要以下方面的帮助:
我已经使用元素声明了一个结构:
struct pole{
int sifra; // code
string opis; // description
float cena; // price
int vlez_kol; // qty
int izlez_kol; // qty
float dan_stapka; //
float iznos; //
int datum; // date
};
我的程序代码有:
for (int i = 0; i < br_artikli; i++){
cout << "Enter the description of the product" << endl;
vlez_artikl(artikli[i]);
}
我的功能如下:
void vlez_artikl(pole &artikli){
do{
cin.clear();
cin.ignore();
getline(cin, artikli.opis);
}while(golemina_string(artikli.opis) >= 30);
}
而golemina_string
函数用于检查字符串的长度:
int golemina_string(string text){
return text.length();
}
所以,我想知道,当用户输入字符串&gt; = 30长度时,如何让程序输出ERROR,并且在他出错之前不显示它。我尝试了几种方法,但无法管理它。所以,我想过可能会添加
cout << "Error" << endl;
在用于输入数据的函数的开头,并且在程序第一次进入函数时以某种方式忽略(不显示文本),但我还没有找到任何方法来做到这一点,任何帮助都表示赞赏。< / p>
实施例:
Enter the description of the product
用户输入时:wewrfoeshfoisfhoiasohidasfdhioadfsoihadsfhioafhiodsafoihdsoaihdsf
输出error
并让他选择一个新号码。
答案 0 :(得分:1)
这样的事情:
void vlez_artikl(pole &artikli){
for(;;) {
cin.clear();
cin.ignore();
getline(cin, artikli.opis);
if (golemina_string(artikli.opis) >= 30)
cout << "String too long, try again" << endl;
else break;
}
}