Нужно отформатировать номер телефона в формате +XXX-YYY-ZZZZZZ и распределить по аргументам номера страны, региона и области, при этом номера между '-' не должны быть пустые, но в номере может быть и не число. Я попытался сделать через поток:
stringstream s(international_number);
TestChar(s, '+');
int num = 0;
s >> num;
PhoneNumber::country_code_ = to_string(num);
TestChar(s, '-');
num = 0;
s >> num;
PhoneNumber::city_code_ = to_string(num);
TestChar(s, '-');
getline(s, PhoneNumber::local_number_);
Где TestChar:
istream& TestChar(istream& s, const char& symb){
if (s.peek() != symb) {
throw invalid_argument("a");
}
s.ignore();
if (s.peek() != '1' && s.peek() != '2' && s.peek() != '3' && s.peek() != '4' &&
s.peek() != '5' && s.peek() != '6' && s.peek() != '7' && s.peek() != '8' &&
s.peek() != '9' && s.peek() != '0') {
throw invalid_argument("b");
}
return s;
Но таким способом в аргументы можно перенести только цифры( даже если убрать проверку на цифры в TestChar, то все равно результат не изменится), т.к, если попытаться перенести из stringstream в string, а не в int, то он переносит туда всю строку из потока. Собственно, в этом и вопрос: можно как-то перенести из потока не всю строку в аргумент?
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Здраствуйте, при написании кода на OpenGL, у меня возникла проблема с файлом gluth
пытаюсь реализовать простейшую запись данных формы в бдПри нажатие кнопки submit данные отправляются но в базу не записываются, а сервер возвращает...
если в books передать массив значений все работает: