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

Как сделать так что бы не выбивала ошибку когда ввел не те данные - C++

Восстановить пароль Регистрация
 
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
23.03.2013, 10:54     Как сделать так что бы не выбивала ошибку когда ввел не те данные #1
Подскажите, у меня возникла проблема вот участок кода
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <stdlib.h>
 
using namespace System;
using namespace std;
int main(array<System::String ^> ^args)
{
  int h;
  Console::WriteLine("Введите число\n");
    h = int::Parse(Console::ReadLine());
 
}
Вот у меня возникает такая проблема, когда пользователь вводит не число а строку то возникает аварийная ошибка, то есть программа закрывается с ошибкой, как это можно исправить, что бы когда пользователь ввел не правильное значения , выдало сообщения о ошибки и попросила ввести еще раз . Как то так.
P.S. почему так когд написан а не на спомошью cin>> cout << , препад так заставляет писать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 10:54     Как сделать так что бы не выбивала ошибку когда ввел не те данные
Посмотрите здесь:

C++ Как сделать так, чтобы данные в прорамму с экрана забивались автоматически?
C++ Как сделать так что я мог умножать не на два числа а на 3,4,5 и так далее?
как сделать что бы когда нажал выбор кокого нить пункта, а он выделялся и с помощью Enter я подтверждаю что выбираю C++
можно ли сделать так, чтобы я ввел определенную команду и программа по ней воспроизводила определенный mp3 (или другой формат) файл? C++
C++ почему когда ты ввел 6, не выдалась фраза что можно вводить только 1, 2 или 3
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,163
Завершенные тесты: 2
23.03.2013, 11:34     Как сделать так что бы не выбивала ошибку когда ввел не те данные #2
ересь а не язык, например проверкой - isdigit
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
23.03.2013, 11:49  [ТС]     Как сделать так что бы не выбивала ошибку когда ввел не те данные #3
Цитата Сообщение от Кудаив Посмотреть сообщение
ересь а не язык, например проверкой - isdigit
а как сделать с помощью isdigit на примере покажи

Я преподу говорил что это что смесь с С++ и C# , зачем фигней страдать если есть такие класные операторы ввода в С++ как cout и cin
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,163
Завершенные тесты: 2
23.03.2013, 12:03     Как сделать так что бы не выбивала ошибку когда ввел не те данные #4
на С++ напишу
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <sstream>
#include <locale>
using namespace std;
 
int main ()
{
  locale loc;
  string str;
  while(true)
  {
      cin>>str;
      if ( isdigit(str[0],loc) )
      {
         int var;
         stringstream(str) >> var;
         break;
      }
      cout<<"Put new value\n";
   }
  return 0;
}
как то так...
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
23.03.2013, 12:04  [ТС]     Как сделать так что бы не выбивала ошибку когда ввел не те данные #5
Цитата Сообщение от Кудаив Посмотреть сообщение
на С++ напишу
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <sstream>
#include <locale>
using namespace std;
 
int main ()
{
  locale loc;
  string str;
  while(true)
  {
      cin>>str;
      if ( isdigit(str[0],loc) )
      {
         int var;
         stringstream(str) >> var;
         break;
      }
      cout<<"Put new value\n";
   }
  return 0;
}
как то так...
что значит эта строка ?
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,163
Завершенные тесты: 2
23.03.2013, 12:07     Как сделать так что бы не выбивала ошибку когда ввел не те данные #6
какая из? int var лучше вынести из цикла кстати
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
23.03.2013, 12:12  [ТС]     Как сделать так что бы не выбивала ошибку когда ввел не те данные #7
Цитата Сообщение от Кудаив Посмотреть сообщение
какая из?
if ( isdigit(str[0],loc) )
{
int var;
stringstream(str) >> var;
break;
}

Добавлено через 3 минуты
А проше сделать не как нельзя ?
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,163
Завершенные тесты: 2
23.03.2013, 12:15     Как сделать так что бы не выбивала ошибку когда ввел не те данные #8
если первый символ вводимой строки - число, то преобразуя string в инт записываем этот первый символ в интовую переменную

Добавлено через 45 секунд
Цитата Сообщение от Sylar9 Посмотреть сообщение
А проше сделать не как нельзя ?
можно в Си стиле - будет в принципе проще
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2013, 12:17     Как сделать так что бы не выбивала ошибку когда ввел не те данные
Еще ссылки по теме:

Как сделать так чтобы пользователь ввел TCHAR C++
C++ Как сделать так что бы выводило не -1.#IND
Как проверить, что пользователь ввел число в переменную string? C++

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

Или воспользуйтесь поиском по форуму:
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
23.03.2013, 12:17  [ТС]     Как сделать так что бы не выбивала ошибку когда ввел не те данные #9
а использовать исклучения ?
Yandex
Объявления
23.03.2013, 12:17     Как сделать так что бы не выбивала ошибку когда ввел не те данные
Ответ Создать тему
Опции темы

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