Форум программистов, компьютерный форум CyberForum.ru

Проверка на корректность входных данных - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
09.03.2013, 20:04     Проверка на корректность входных данных #1
Нужно написать программу, которая бы проверяла строку на корректность. Допустимый формат вот такой +7 (233) 555-11-22. Как это сделать? В голову ничего толкового не лезет. Написал вот такое, но оно почему-то не работает, в конце рушится и выдает вот такую ​​ошибку: Run-Time Check Failure #2 - Stack around the variable 'phone' was corrupted.
Самой функции проверки не реализовано, думаю что вы поможете
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
 
using namespace std;
 
class Phone
{
    friend ostream &operator<<(ostream &,const Phone&);
    friend istream &operator>>(istream &,Phone &);
private:
    char phon[15];
};
 
ostream &operator<<(ostream & out,const Phone &Obj)
{
    out<<Obj.phon;
 
    return out;
}
 
istream &operator>>(istream &inp,Phone &Obj)
{
    inp>>Obj.phon;
 
    return inp;
}
 
int main()
{
    Phone phone;
    cin>>phone;
    cout<<phone;
    system("pause>0");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.03.2013, 13:31     Проверка на корректность входных данных #21
Цитата Сообщение от The_bolT Посмотреть сообщение
И почему нужно использовать именно двухмерный массив, почему нельзя обойтись простым массивом?
Потому что номер делится на слова, которые по отдельности проверяются на правильность.

Цитата Сообщение от The_bolT Посмотреть сообщение
зачем там эта проверка?
Проверка на количество слов в номере (должно быть три). Проверка на количество символов в этих словах.

Добавлено через 2 минуты
Если результат нужно записать в поле класса (char phon), то, после успешного ввода, из массива последовательно извлечь три слова и записать через пробел (или как нужно).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
10.03.2013, 13:34  [ТС]     Проверка на корректность входных данных #22
alsav22, Спасибо, теперь понял что к чему!
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.03.2013, 13:38     Проверка на корректность входных данных #23
Самое рациональное - первый вариант. Остальное - извращения (это уже не C++, а что-то непонятное).
The_bolT
70 / 70 / 1
Регистрация: 22.01.2013
Сообщений: 231
10.03.2013, 13:41  [ТС]     Проверка на корректность входных данных #24
Я бы с радостью принял первый вариант, но нам нельзя использовать vector ни string, из STL ничего нельзя использовать!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2013, 13:45     Проверка на корректность входных данных
Еще ссылки по теме:

Проверка правильности входных параметров конструктора C++
Проверка на корректность введенных данных C++
C++ Проверка указателя на корректность

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
10.03.2013, 13:45     Проверка на корректность входных данных
  #25

Не по теме:

Я это понял.

Yandex
Объявления
10.03.2013, 13:45     Проверка на корректность входных данных
Ответ Создать тему
Опции темы

Текущее время: 12:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru