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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Святок
0 / 0 / 0
Регистрация: 24.12.2012
Сообщений: 3
#1

требуется сделать вывод ошибки если вместо чисел введен текст, - C++

24.12.2012, 19:00. Просмотров 554. Ответов 7
Метки нет (Все метки)

помогите бедному студенту завтра сдавать отчет, а я не могу сделать следующее, требуется сделать вывод ошибки если вместо чисел введен текст, это часть текста программы в котором и происходит запись.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//Создаём объекты
Room r1;
Apartment a1;
Storage s1;
AnsiString buff;
 
r1.setSquare(StrToInt(edtRSq->Text));
r1.setHight(StrToInt(edtRHight->Text));
 
a1.setFloor(StrToInt(edtAFloor->Text));
a1.setRoomsCount(StrToInt(edtARooms->Text));
a1.setSquare(StrToInt(edtASq->Text));
 
s1.setCapability(StrToInt(edtSCap->Text));
s1.setSquare(StrToInt(edtSSq->Text));
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2012, 19:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос требуется сделать вывод ошибки если вместо чисел введен текст, (C++):

Вывод кода ошибки если файл не найден - C++
Есть небольшой код на проверку файла. По теории все более-менее готово, нужно только заменить пару функций. Не могу понять где, или нужно...

Предусмотреть вывод ошибки, если файла не существует - C++
нужно предусмотреть вывод ошибки, если файла не существует и в case 1 и case 2 #define _CRT_SECURE_NO_WARNINGS #include "stdafx.h" ...

Сделать вывод типа float в шаблоне вместо double - C++
Здравствуйте,уважаемые пользователи.Недавно начал знакомится с шаблонами, и заметил одну вещь которая не дает мне покоя.Суть вот в чем,...

Как правильно сделать вывод 404 ошибки, если id в базе не существует - PHP
Здравствуйте. Никак не могу побороть свое незнание php.. Подскажите. Вот есть подобныестраницы: site.ru/part.php?id=34 ...

Как сделать при поиске в таблице (через AdoQuery) вывод ошибки, если элемент не был найден? - C++ Builder БД
таблица подключена через ADOQuery1, а столбец поиска мы указываем через радиоруп.void __fastcall TForm1::Button4Click(TObject *Sender) {...

Задан текст величине s в нем кто-то сделал ошибки (вместо одного пробела вставил 2 пробелы) Приведите текст к порядку - Pascal ABC
Помогите! через pascal!

7
Vladimir616
112 / 112 / 3
Регистрация: 05.07.2009
Сообщений: 224
24.12.2012, 20:04 #2
Святок, попробуйте использовать TryStrToInt.
C++
1
2
3
int i;
if (!TryStrToInt(text,i))
   ShowMessage("Введённые данные не являются числом!");
0
Святок
0 / 0 / 0
Регистрация: 24.12.2012
Сообщений: 3
24.12.2012, 20:09  [ТС] #3
А можешь непосредственно в текст вставить, уже перерыл кучу лит-ры, и ни как, не понимаю в чем причина
0
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
24.12.2012, 20:11 #4
isalpha
0
Vladimir616
112 / 112 / 3
Регистрация: 05.07.2009
Сообщений: 224
24.12.2012, 20:14 #5
Самое простое решение "в лоб":
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Room r1;
Apartment a1;
Storage s1;
AnsiString buff;
 
int i;
if (!TryStrToInt(edtRSq->Text,i) || !TryStrToInt(edtRHight->Text,i) || !TryStrToInt(edtAFloor->Text,i)) //и т.д
   ShowMessage("Ошибка во входных данных!");
 
r1.setSquare(StrToInt(edtRSq->Text));
r1.setHight(StrToInt(edtRHight->Text));
 
a1.setFloor(StrToInt(edtAFloor->Text));
a1.setRoomsCount(StrToInt(edtARooms->Text));
a1.setSquare(StrToInt(edtASq->Text));
 
s1.setCapability(StrToInt(edtSCap->Text));
s1.setSquare(StrToInt(edtSSq->Text));
0
Святок
0 / 0 / 0
Регистрация: 24.12.2012
Сообщений: 3
24.12.2012, 20:20  [ТС] #6
Цитата Сообщение от Vladimir616 Посмотреть сообщение
Самое простое решение "в лоб":
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Room r1;
Apartment a1;
Storage s1;
AnsiString buff;
 
int i;
if (!TryStrToInt(edtRSq->Text,i) || !TryStrToInt(edtRHight->Text,i) || !TryStrToInt(edtAFloor->Text,i)) //и т.д
   ShowMessage("Ошибка во входных данных!");
 
r1.setSquare(StrToInt(edtRSq->Text));
r1.setHight(StrToInt(edtRHight->Text));
 
a1.setFloor(StrToInt(edtAFloor->Text));
a1.setRoomsCount(StrToInt(edtARooms->Text));
a1.setSquare(StrToInt(edtASq->Text));
 
s1.setCapability(StrToInt(edtSCap->Text));
s1.setSquare(StrToInt(edtSSq->Text));
можно ещё что бы работа программы не прекращалась?????
0
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
24.12.2012, 20:21 #7
Цитата Сообщение от Святок Посмотреть сообщение
edtRSq->Text
Получи строку во временную переменную.
Проверь в цикле её содержимое
C++
1
2
3
4
5
6
for(int i = 0; i < buff.size(); i++)
if(!isdigit(buff.at(i)))  {
//сообщаем об ошибке и входим из цикла
//ShowError();
break;
}
Добавлено через 35 секунд
Наверное не в ту степь я написал...
1
Vladimir616
112 / 112 / 3
Регистрация: 05.07.2009
Сообщений: 224
24.12.2012, 20:23 #8
Святок, заставьте пользователя заново ввести все данные.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2012, 20:23
Привет! Вот еще темы с ответами:

Если текст содержит символьный код вместо символа - C#
Суть проблемы такова. Парсим текст из xml. Там он имеет вид &amp;quot;Full inventory&amp;quot; (тоесть &quot;Full inventory&quot; в обычном виде) Мне...

Как сделать вместо числа - текст? - Delphi
Хотел создать свой трейнер-русификатор для игры но есть одна проблема, я не мастер на Delphi и мало знаю языков программирования....

как сделать так, чтобы вместо #ошибки выводило 0(ноль)? - MS Access
Таблица1: 1)Klient - Клиент 2)ves_kond - кондициооный вес 3)ves_nett - вес нетто 4)ras_ves_nett - расход вес нетто надо...

Если введен верный пароль, то открывается вторая форма с рисунком, если нет, то пароль запрашивается снова - Delphi
2. Создайте форму со строкой для ввода пароля и кнопкой «Ок». Если введен верный пароль, то открывается вторая форма с рисунком, если нет,...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
24.12.2012, 20:23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru