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

Защита от некорректного ввода - C++

Восстановить пароль Регистрация
 
Egorych
0 / 0 / 0
Регистрация: 09.10.2013
Сообщений: 10
18.10.2013, 07:50     Защита от некорректного ввода #1
Здравствуйте!
Нужно осуществить контроль при заполнении матрицы, если введены не корректные данные, вывести сообщение, и переспросить ввод.
Корректными данными являются: целые числа. При вводе дробных, вывести сообщение, и переспросить ввод, при вводе "текста" завершить программу.
Прошу помощи в решении!
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
35
36
37
38
39
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
   int n, max, str, stl,**Mas,i,j;
   cout << "Enter the dimension of the matrix: ";
   cin >> n;
   Mas = new int*[n];
   for (i = 0; i<n; i++)
      Mas[i] = new int[n];
   cout << "Enter the elements of the matrix: \n";
   for (i=0; i<n; i++)
   for (j=0; j<n; j++)
         cin >> Mas[i][j];
         cout << "Introduced the matrix: \n";
         for (i=0; i<n; i++)
         {
         for (j=0; j<n; j++)
         cout << Mas[i][j] << "\t";
         cout << endl;
         }
    max = Mas[0][0];
    for(i = 0; i < n; i++)
    for(j = 0; j < n; j++)
    {
        if(max < Mas[i][j])
            max = Mas[i][j];
    }
    for(i = 0; i < n; i++)
    for(j = 0; j < n; j++)
    {
        if(max == Mas[i][j])
           cout << "\nThe maximum element of the matrix:" << max << ". Located in the " << i+1 << " row, column. " << j+1 << endl;
    }
   system("pause");
   return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2013, 07:50     Защита от некорректного ввода
Посмотрите здесь:

C++ Защита ввода.
Защита от некорректного ввода C++
C++ Защита от некорректного ввода для действительных чисел
Защита от ввода букв C++
Защита ввода C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
18.10.2013, 07:53     Защита от некорректного ввода #2
Egorych, читайте ввод в строку, а потом пробуйте преобразования в число.
Egorych
0 / 0 / 0
Регистрация: 09.10.2013
Сообщений: 10
18.10.2013, 08:03  [ТС]     Защита от некорректного ввода #3
Цитата Сообщение от Tulosba Посмотреть сообщение
Egorych, читайте ввод в строку, а потом пробуйте преобразования в число.
Можно ли реализацию в моем коде? Я пока тока начинаю C++ изучать...
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
18.10.2013, 08:07     Защита от некорректного ввода #4
Egorych, см std::getline, чтение в std::string, проверка символа на цифру std::isdigit...

Не по теме:

с планшета неудобно код писать

alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
18.10.2013, 08:09     Защита от некорректного ввода #5
В строке ввода только цифры, перед которыми могут быть + или - :
C++
1
2
3
4
5
6
7
int a;
while (!(cin >> a) || (cin.peek() != '\n'))
{
    cin.clear();
    while (cin.get() != '\n');
    cout << "Error!" << endl;
}
Yandex
Объявления
18.10.2013, 08:09     Защита от некорректного ввода
Ответ Создать тему
Опции темы

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