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

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

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

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

24.12.2012, 19:00. Просмотров 515. Ответов 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));
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2012, 19:00     требуется сделать вывод ошибки если вместо чисел введен текст,
Посмотрите здесь:

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

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

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

Задан массив целых чисел. Записать +1 вместо максимального элемента массива и -1 вместо минимального - C++
Не понимаю, что не так, помогите исправить код. #include<conio.h> #include<iostream> #include<stdlib.h> using namespace std; ...

Задан массив целых чисел. Записать +1 вместо максимального элемента массива и -1 вместо минимального - C++
Попробовал написать, но что-то не получилось. Помогите исправить. int main() { int i, min, max; int array; for(i=0; i<10;...

Как сделать вывод чисел в виде квадрата? - C++
#include <iostream> #include <cmath> using namespace std; int main() { float Fx = 4, Fy = 5; int x, y, m; cin...

Как сделать вывод чисел (например 1.12062e+06) в стандартном виде? - C++
#include "stdafx.h" #include <iostream> #include <iomanip> #include <cmath> using namespace std; int main() ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimir616
111 / 111 / 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
Регистрация: 24.12.2012
Сообщений: 3
24.12.2012, 20:09  [ТС]     требуется сделать вывод ошибки если вместо чисел введен текст, #3
А можешь непосредственно в текст вставить, уже перерыл кучу лит-ры, и ни как, не понимаю в чем причина
m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,256
Завершенные тесты: 2
24.12.2012, 20:11     требуется сделать вывод ошибки если вместо чисел введен текст, #4
isalpha
Vladimir616
111 / 111 / 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
Регистрация: 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));
можно ещё что бы работа программы не прекращалась?????
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 секунд
Наверное не в ту степь я написал...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2012, 20:23     требуется сделать вывод ошибки если вместо чисел введен текст,
Еще ссылки по теме:

Дана строка содержащая текст. Выяснить, входит ли данное слово в указанный текст, и если да, то сколько раз - C++
Дана строка содержащая текст. Выяснить, входит ли данное слово в указанный текст, и если да, то сколько раз

Вывод в консоль чисел с плавающей точкой: как сделать, чтобы после запятой было только два знака? - C++
как сделать что бы после запятой было только два знака? спасибо

Требуется идентификатор, исправить ошибки - C++
Помогите, пожалуйста, исправить ошибки. class rus_codecvt : public std::codecvt&lt;char, char, std::mbstate_t&gt; { protected: virtual...

При работе с символами адрес вместо адреса иероглифы, а с символьными массивами вобще ошибки. - C++
/* 1) int a; int *b=&amp;a; cout&lt;&lt;b&lt;&lt;endl; 2) char a; char *b=&amp;a; cout&lt;&lt;b; */ Надо просто...

Вывод цифр вместо символов - C++
Добрый день, есть ли объяснение тому, почему в данном примере вместо символов 'abc' выводится набор цифр? Спасибо. #include &lt;iostream&gt;...


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

Или воспользуйтесь поиском по форуму:
Vladimir616
111 / 111 / 3
Регистрация: 05.07.2009
Сообщений: 224
24.12.2012, 20:23     требуется сделать вывод ошибки если вместо чисел введен текст, #8
Святок, заставьте пользователя заново ввести все данные.
Yandex
Объявления
24.12.2012, 20:23     требуется сделать вывод ошибки если вместо чисел введен текст,
Ответ Создать тему
Опции темы

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