Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/47: Рейтинг темы: голосов - 47, средняя оценка - 4.57
 Аватар для poli105
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 18

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

24.04.2014, 17:13. Показов 9898. Ответов 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)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.04.2014, 17:13
Ответы с готовыми решениями:

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

Не могу разобраться с повторным вводом данных без выхода из программы
Добрый день. Не понимаю как сделать, чтобы программа после вывода результата на экран предлагала ввести данные снова. Так же нужно...

Повторный ввод данных
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;russian&quot;); int sum, s, x1, x2; cout &lt;&lt; &quot;s...

4
15 / 15 / 6
Регистрация: 28.11.2013
Сообщений: 50
24.04.2014, 17:21
Лучший ответ Сообщение было отмечено poli105 как решение

Решение

Например, так

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  [ТС]
Спасибо))) Но окно то консоли всё равно закрывается. А как сделать, чтобы в случае ошибки опять предлагался ввод?)
0
15 / 15 / 6
Регистрация: 28.11.2013
Сообщений: 50
24.04.2014, 17:48
В случае ошибки сейчас как раз ввод и предлагается.
А чтобы задержать экран консоли, можно либо прописать system("pause");
либо getch(); , предварительно подключив conio.h ( плохой вариант)
либо просто создать какую-то переменную и ждать ее ввода (cin >> a; )
1
 Аватар для poli105
0 / 0 / 0
Регистрация: 08.12.2013
Сообщений: 18
24.04.2014, 18:02  [ТС]
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.04.2014, 18:02
Помогаю со студенческими работами здесь

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

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

Запросить повторный ввод при некорректно введенных данных
Возник нубский вопрос , как организовать повторный ввод.Условие я сам придумал , но чет жестко застопарился на нем , поhоду диградирую )) ...

Как установить код возврата без выхода из программы?
Т.е. не используя ExitProcess.

повторный ввод символа
доброго времени суток... имеется код procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char); begin case key of ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru