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

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

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

Повторный ввод данных без выхода из программы - C++

24.04.2014, 17:13. Просмотров 1345. Ответов 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
24
25
26
27
28
29
30
while(w1 != 1, w1 != -1){
    //  веса w1
    cout << "Введите весовой коэффицент синапса w1 1 или -1: ";
    cin >> w1;
    if (w1 == 1){
          cout << "Возбуждающий синапс" << endl << endl;
           } else if (w1 == -1){
          cout << "Тормозящий синапс" << endl  << endl;
          }
           
    //  веса w2    
    cout << "Введите весовой коэффицент синапса w2 1 или -1: ";
    cin >> w2;
    if (w2 == 1){
           cout << "Возбуждающий синапс" << endl << endl;
           } else if (w2 == -1){
           cout << "Тормозящий синапс" << endl  << endl;                    
           }    
            
    //  веса w3
    cout << "Введите весовой коэффицент синапса w3 1 или -1: ";
    cin >> w3;
    if (w3 == 1){
           cout << "Возбуждающий синапс" << endl << endl;
           } else if (w3 == -1){
           cout << "Тормозящий синапс" << endl << endl;
           }
 
    else { cout << "Ошибка неверный формат ввода..." << endl << endl; }
}
При неправильном вводе, выводится сообщение об ошибке, после этого выход из программы. Как сделать, чтобы вместо выхода программа предлагала повторный ввод данных? Подскажите пожалуйста!

Добавлено через 9 минут
Извините, неправильный код))) Вот исправленный:
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
//  вес w1
    cout << "Введите весовой коэффицент синапса w1 1 или -1: ";
    cin >> w1;
    if (w1 == 1){
          cout << "Возбуждающий синапс" << endl << endl;
           }
    else if (w1 == -1){
          cout << "Тормозящий синапс" << endl  << endl;
           }
    else if (w1 != 1, w1 != -1){
          cout << "Ошибка неверный формат ввода..." << endl << endl;
          }   
           
    //  вес w2     
    cout << "Введите весовой коэффицент синапса w2 1 или -1: ";
    cin >> w2;
    if (w2 == 1){
           cout << "Возбуждающий синапс" << endl << endl;
           }
    else if (w2 == -1){
           cout << "Тормозящий синапс" << endl  << endl;                    
           }    
    else if (w2 != 1, w2 != -1){
          cout << "Ошибка неверный формат ввода..." << endl << endl;
          } 
                    
    //  вес w3
    cout << "Введите весовой коэффицент синапса w3 1 или -1: ";
    cin >> w3;
    if (w3 == 1){
           cout << "Возбуждающий синапс" << endl << endl;
           }
    else if (w3 == -1){
           cout << "Тормозящий синапс" << endl << endl;
           }
    else if (w3 != 1, w3 != -1){
          cout << "Ошибка неверный формат ввода..." << endl << endl;
          }
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2014, 17:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Повторный ввод данных без выхода из программы (C++):

Повторный ввод без завершения программы - C++
консольное приложение. как сделать так, чтобы при вводе неверных данных в переменную (cin &gt;&gt; a), заново запрашивать ввод данных? без...

Повторный ввод данных после ошибки - C++
как после слов &quot;ошибка!!!...&quot; вернуться для повторного ввода оценки ученику?#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; ...

Добавить повторный ввод - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; #include&lt;iostream&gt; #include &lt;stdlib.h&gt; #include &lt;locale.h&gt; int...

Конструктор. Повторный ввод в строку - C++
При создании второго объекта, не запрашивает повторный ввод в строку типа char. Как исправить? class exampleGar { private: int...

Не получается повторный ввод числа - C++
Дано некое задание на вывод массива чисел. В случае неправильности ввода размера массива (более 20-ти чисел), программа должна выводить...

Проверка на повторный ввод элемента массива - C++
Вот код во время проверки на повторный ввод элемента массива получается бессконечный цыкл и еще одна проблема при проверке на ввод чисел...

4
_Ellen_
15 / 15 / 5
Регистрация: 28.11.2013
Сообщений: 50
24.04.2014, 17:21 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Например, так

C++
1
2
3
4
5
6
7
8
9
10
11
12
do {
    cout << "Введите весовой коэффициент синапса w1 1 или -1: ";
    cin >> w1;
    if (w1 == 1) {
          cout << "Возбуждающий синапс" << endl << endl;
          break;
    }
    else if (w1 == -1) {
          cout << "Тормозящий синапс" << endl  << endl;
          break;
    }          
} while (cout << "Ошибка, неверный формат ввода..." << endl << endl);
1
poli105
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 18
24.04.2014, 17:35  [ТС] #3
Спасибо))) Но окно то консоли всё равно закрывается. А как сделать, чтобы в случае ошибки опять предлагался ввод?)
0
_Ellen_
15 / 15 / 5
Регистрация: 28.11.2013
Сообщений: 50
24.04.2014, 17:48 #4
В случае ошибки сейчас как раз ввод и предлагается.
А чтобы задержать экран консоли, можно либо прописать system("pause");
либо getch(); , предварительно подключив conio.h ( плохой вариант)
либо просто создать какую-то переменную и ждать ее ввода (cin >> a; )
1
poli105
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 18
24.04.2014, 18:02  [ТС] #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
do { // проверка ввода  
       //   вес w1
       cout << "Введите весовой коэффицент синапса w1 1 или -1: ";
       cin >> w1;
       // определение весового коэффициента синапса возбуждающий или тормозящий
       if (w1 == 1){
              cout << "Возбуждающий синапс" << endl << endl;
              break;
              }
       else if (w1 == -1){
            cout << "Тормозящий синапс" << endl  << endl;
            break;
            }
            system("pause");   
    } while (cout << "Ошибка, неверный формат ввода..." << endl << endl);
Отлично! Спасибо большое)))
0
24.04.2014, 18:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2014, 18:02
Привет! Вот еще темы с ответами:

Как реализовать запрос на повторный ввод в цикле while - C++
Всем Доброго времени суток! Помогите, пожалуйста новичку справиться с задачей. Условие задачи требует вывести на консоль необходимое...

Как сделать повторный ввод числа в случае ошибки? - C++
Подскажите пожалуйста как сделать так чтобы во время ввода пользователем символа программа бы не завершалась а предложила ввести заново...

Ввод данных без нажатия «Enter» - C++
Добрый день Интересует такой вопрос После ввода числа нужно нажимать клавишу ENTER Как можно добится того, чтобы после ввода числа...

Ввод данных без нажатия Enter - C++
Здравствуйте. Допустим, у меня есть такое: char ololo; cin &gt;&gt; ololo; Тут мне надо ввести символ и нажать Enter. Как сделать...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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