Следният код работи добре и също така проверява дали потребителят е въвел правилното количество елементи, но не успява, когато входът има празен ред в края.
string item1, item2, item3;
while(cin.good) {
//this allows me to both check if user input enough items
//EDIT: and if items are of right type so I can cerr
if (cin >> item1 && cin>> item2 && cin>> item3) {
doStuff(item1,item2,item3);
}else {
cerr<<"bad input! Not enough input items or wrong type"<<endl;
}
}
Мога ли да променя cin.good с нещо друго, за да реша ситуацията, когато има празен ред в края? Ще приема и други решения.
РЕДАКТИРАНЕ: Осъзнавам, че не мога да използвам while(cin >> item1), защото тогава не мога да проверя съобщението за грешка, ако item1 е грешен тип.