Как сделать ограничение на количество чисел в номере который я буду вводить
#include <iostream>
#include <iomanip>
#include<string.h>
#include <string>
using namespace std;
class Phone_number {
public:
int code;
int number;
int type_number;
Phone_number(const Phone_number& v) :
code(v.code),
number(v.number),
type_number(v.type_number) {}
const Phone_number& operator=(const Phone_number& v)
{
code = v.code;
number = v.number;
type_number = v.type_number;
return v;
}
Phone_number() {}
};
int main() {
int a;
int count = 0;
int tel = 1;
int i;
Phone_number* Phone1 = new Phone_number[tel];
cout << "Enter Telephone number" << endl;
for (int i = 0; i < tel; i++) {
cin >> Phone1[i].number;
}
}
Ответы (1 шт):
Автор решения: KoVadim
→ Ссылка
Я бы делал в два прихода. Вначале воспользовался бы std::cin.width(15) (или сколько Вам подходит), что бы ограничить длину вводимой строки. А потом уже проверял фактическую строку, насколько она хороша.
for (int i = 0; i < tel; i++) {
std::cin.width(15);
std::string number;
cin >> number;
if (number.empty()) { std::cout << "номер пуст не может быть"; continue;}
if (!std::isdigit(number[0])) { std::cout << "номер должен начинаться с цифры как минимум!"; continue;}
Phone1[i].number = number;
}
Связанный вопрос https://stackoverflow.com/questions/34444126/cs-cin-width-function-explanation