Я пишу проект, и я должен проверить, введен ли пользователь допустимое значение для определенных вещей. Например, первым случаем является проверка того, вводит ли он целое число, длина которого не превышает 6 и> 0. Я работаю с структурой, так что мой код это:Как проверить, введено ли пользователем допустимое значение?
#include <iostream>
using namespace std;
int dolzina_int(int vlez);
int main()
{
struct pole{
int sifra; // sifra na artiklot
string opis; // opis na artiklot
float cena; // edinecna cena
int vlez_kol; // vlezna kolicina
int izlez_kol; // izlezna kolicina
float dan_stapka; // danocna stapka
float iznos; // iznos
int datum; // datum na vlez i izlez (GGMMDD)
}artikli[100]; // maksimalen broj na artikli e 100
for (int i = 0; i < 5; i++){
cin >> artikli[i].sifra;
while(!(cin >> artikli[i].sifra) ||
(artikli[i].sifra < 0 || (dolzina_int(artikli[i].sifra) > 6)))
{
cout << "Error" << endl;
cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
}
return 0;
}
// funkcija za dolzina na integer
int dolzina_int(int vlez){
int dolzina = 1;
while(vlez > 0){
dolzina++;
vlez /= 10;
}
return dolzina;
}
Итак, мой код, кажется, работает, первая часть, это проверить, если это> 6 или < 0, а второй еще, если это Безразлично 't работать правильно, чтобы проверить, является ли это целым числом или нет. Поэтому мой вопрос заключается в следующем: как я могу убедиться, что это целочисленное значение, которое вводит пользователь, и как я могу убедиться, что длина целого не равна> 6 или значение равно < 0, а между тем, если это так, сделать он снова вводит его, а также проверяет вновь введенное значение, поскольку мой код этого не делает в настоящее время.
for (int i = 0; i < 5; i++){
artikli[i].sifra = 1;
do{
cout << "Enter a code: ";
while(!(cin >> artikli[i].sifra)){
cin.clear();
cin.ignore();
cout << "Invalid entry. Enter a new value: ";
}
}while(artikli[i].sifra > 0 && dolzina_int(artikli[i].sifra) > 6);
}
Я постараюсь помочь. Можете ли вы показать мне свой класс и всю свою «главную» функцию? – 0x499602D2
Обновлен весь исходный код (текущий) в главном сообщении. – user3002211
Спасибо. Я постараюсь изо всех сил решить вашу проблему. – 0x499602D2