Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
13 / 13 / 3
Регистрация: 24.04.2011
Сообщений: 122

Обработка исключительных ситуаций

06.10.2012, 12:26. Показов 2081. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Написал проверку на ввод в массив вещественных чисел:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int i,j;
float A[6][6];
bool flag=false;
for(i=1;i<n;i++)
for(j=1;j<m;j++)
 {
  try
  {
  A[i][j]=StrToFloat(Form1->StringGrid1->Cells[j][i]);
 }
 catch (EConvertError&)
 {
  A[i][j]=0;
  flag=true;
 }
  }
 
if(flag)
Application->MessageBox("Некорректные данные!","Ошибка",
MB_OK+MB_ICONEXCLAMATION);
else
{...//Если все правильно идем дальше}
Собственно вопрос. У меня всегда пишет, что данные не правильные, хотя ввел все вещественные числа. Что у меня не так. Подскажите пожалуйста)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.10.2012, 12:26
Ответы с готовыми решениями:

Обработка исключительных ситуаций на С++
Добрый вечер) Можете объяснить, как правильно будет оформить блок cath() Вот код программы: int j; j=2; AnsiString Marka; ...

Обработка исключительных ситуаций
catch(Exception &amp;ex){ Application-&gt;MessageBoxA(ex.Message.c_str(),&quot;Ошибка1&quot;); } catch(char *msg){ ...

Обработка исключительных ситуаций
Имеется MaskEdit с форматом ввода !99/99/00;1;_ т.е. __.__.__ ввод даты рождения. Т.е. если пользователь введет 11.22.33 то все будет...

8
 Аватар для NIch
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
06.10.2012, 12:40
Возможно дело в разделителе дробной и целой части, т.е. 3,14 или 3.14.
1
13 / 13 / 3
Регистрация: 24.04.2011
Сообщений: 122
06.10.2012, 12:49  [ТС]
Хмм раньше через , тоже ошибку писало. Сейчас нет. Ладно вопрос решен)
0
 Аватар для gumi250
435 / 402 / 57
Регистрация: 06.02.2012
Сообщений: 1,384
06.10.2012, 12:54
Попробуй через запятую. Попробуй ввести целое число без дробной части. Неплохо еще знать в какой именно ячейке некорректные данные.
0
 Аватар для NIch
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
06.10.2012, 13:11
Посмотри в региональных настройках своей системы какой знак стоит в качестве разделителя.
0
6 / 6 / 6
Регистрация: 30.04.2012
Сообщений: 216
28.11.2012, 17:51
Для события OnEnter компонента Edit записать код, в котором необходимо преобразовать введенные символы в число с помощью функции StrToInt. Использовать исключение для обработки ошибки EConvertError.
Написал следующее:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TMainForm.EditEnter(Sender: TObject);
 var int: integer; str: string; Key: char;
begin
 str:='Строка'; // Название строки.
 Edit.Text:=''; // По умолчанию пустая строка.
 try // Пробовать
  int:=StrToInt(Edit.Text); // Символы в строке преобразовать в число.
 except // Исключить...
  on EConvertError //  ошибку "EConvertError"
  do ShowMessage('Неверное значение'); // Если возникает, вывести сообщение об ошибке.
 end;
 ShowMessage(str+' = '+IntToStr(int)); // Вывести результат - какой символ в строке.
end;
Когда я ставлю курсор в Edit, сообщение ошибке выводится, следом выводится сообщение "Строка = 0", но потом когда я пытаюсь ввести символ ничего не водиться . Где ошибка и как правильно? Пжста подскажите!
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
28.11.2012, 19:46
C++
1
flag = TryStrToFloat( Form1->StringGrid1->Cells[j][i],A[i][j] );
Добавлено через 2 минуты
Либо

C++
1
2
3
4
5
6
7
8
9
try
  {
   A[i][j]=StrToFloat(Form1->StringGrid1->Cells[j][i]);
  }
 catch (EConvertError& E)
 {
  A[i][j]=0;
  Application->MessageBox(E.Message,"Ошибка", MB_OK+MB_ICONEXCLAMATION);
 }
У вас логика построения отлова исключений не правильная
0
28.11.2012, 21:00  [ТС]

Не по теме:

Avazart,я то давно разобрался:).Это какой-то товарищ мою тему поднял и притом свой код на делфи написал)

0
6 / 6 / 6
Регистрация: 30.04.2012
Сообщений: 216
28.11.2012, 21:23
Упс! Действительно не туда спросил. Извините.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.11.2012, 21:23
Помогаю со студенческими работами здесь

Обработка исключительных ситуаций в C++ Builder 2010
собственно сабж, подскажите как?

Обработка исключительных ситуаций в консольном приложении
Всем добррого времени суток. Условие токово.Написать программу нахождения частного 2-х целых чисел. Организовать обработку исключительных...

Перехват исключительных ситуаций
Запрограммировать программу, которая демонстрирует генерирования исключительных ситуаций, через создание класса Error, что перехватывает...

Обработчик исключительных ситуаций
Проверьте, плиз, что не так. void __fastcall TForm1::Button1Click(TObject *Sender) { float a1; try { ...

Обработка исключительных ситуаций
Добрый день. Помоги разобраться с обработкой исключительных ситуаций. Вот я написал класс «TxtFile», который будет открывать какой-то...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru