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

Как повторить программу - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.63
lqazxsazl
2 / 2 / 0
Регистрация: 22.06.2011
Сообщений: 42
23.06.2011, 00:02     Как повторить программу #1
Как сделать чтоб если я с клавиатуры в консоли введу "y" программа повторилась а если "n" то завершилась?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
23.06.2011, 00:09     Как повторить программу #2
C
1
2
3
4
5
6
7
...
char ch;
do {
   /* что-то сделать */
   printf("continue? (y/n): ");
} while ( scanf("%c%*c", &ch) == 1 && ( ch == 'y' || ch == 'Y' ) );
...
NIch
 Аватар для NIch
399 / 310 / 27
Регистрация: 17.03.2010
Сообщений: 1,120
23.06.2011, 00:10     Как повторить программу #3
Либо задай цикл while пока не будет "Y", либо используй goto проверяя ввод "Y" через if.
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
23.06.2011, 00:21     Как повторить программу #4
C++
1
2
3
4
5
6
7
8
9
10
11
    while(1) {
 
        cout << "input sign cmd: ";
        char c;
        cin >> c;
        if(c == 'y')
             continue;
          else if(c == 'n')
             break;
 
    }
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
23.06.2011, 00:42     Как повторить программу #5
а если другой символ будет введен?? Тогда стоит обрабатывать только случай с "n"...
это мое понимание...
C++
1
2
3
4
5
6
do
{
    // ...
    std::cin >> ch;
}
while ( ch != 'n' );
Добавлено через 3000000000 минут

Не по теме:

И я считаю, использование break и goto в кодах программ - "не владением ситуацией"! Можно ведь использовать те же самые флаги...

asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
23.06.2011, 01:00     Как повторить программу #6
Цитата Сообщение от Mиxaил Посмотреть сообщение
И я считаю, использование break и goto в кодах программ - "не владением ситуацией"!
Ну goto то понятно, но гнать на break - это маразм.
hoot
 Аватар для hoot
100 / 21 / 3
Регистрация: 10.11.2010
Сообщений: 193
23.06.2011, 01:27     Как повторить программу #7
Как сделать чтоб если я с клавиатуры в консоли введу "y" программа повторилась а если "n" то завершилась?[/

Для этого удобней будет использовать оператор SWITCH.
C++
1
2
3
4
5
6
7
8
9
Switch(symbo)
{
case n:
   cout<<"Your program!";
break;
case y:
cout<<"End program!";
break;
}
Я новичок, поэтому если ошибаюсь , буду благодарен если обьясните почему нульзя.
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
23.06.2011, 01:40     Как повторить программу #8
Цитата Сообщение от asics Посмотреть сообщение
гнать на break - это маразм
Никакой не маразм, просто зачем "досрочно" завершать итерацию, если можно поставить контроль событий (bool переменную), и плавно по ней выйти?!
Тему break, думаю, можно закрывать, ибо холивар тут ни к месту - идет обсуждение другой темы...

Добавлено через 1 минуту
hoot, нужно немного изменить Ваш код:
C++
1
2
3
4
5
6
7
8
9
Switch(symbo)
{
case 'n':
   cout<<"Your program!";
break;
case 'y':
cout<<"End program!";
break;
}
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
23.06.2011, 01:41     Как повторить программу #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Mиxaил Посмотреть сообщение
Никакой не маразм, просто зачем "досрочно" завершать итерацию, если можно поставить контроль событий (bool переменную), и плавно по ней выйти?!
Что за такой термин "плавно" ? А с break он что, через жопу выйдет или как ? И зачем полидть перемнные-флаги, тем самым засоряя код, если логичней будет использовать break ?
silent_1991
23.06.2011, 02:01
  #10

Не по теме:

Цитата Сообщение от Mиxaил Посмотреть сообщение
использование break и goto в кодах программ
Заставь дурака богу молиться...

Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
23.06.2011, 07:49     Как повторить программу #11

Не по теме:

Цитата Сообщение от Mиxaил Посмотреть сообщение
Никакой не маразм
Исключения, тоже, ни в коем случае не используйте. Это ещё большее "не владение ситуацией"...



Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от Mиxaил Посмотреть сообщение
"не владением ситуацией"
В корректной программе, с автоматически разрушающимися объектами это понятие себя изжило. Причём, уже давно.

accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.06.2011, 10:29     Как повторить программу #12
Цитата Сообщение от asics
Ну goto то понятно, но гнать на break - это маразм.
break'ов может быть много, тогда как условие завершения цикла должно быть сведено в одну точку
while (1) - стиль новичков
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
23.06.2011, 10:37     Как повторить программу #13
Цитата Сообщение от accept Посмотреть сообщение
break'ов может быть много,
А может и небыть, все завистит от ситуации.Да и флагов может быть много, но как Вы уже сказали:
Цитата Сообщение от accept Посмотреть сообщение
условие завершения цикла должно быть сведено в одну точку
И я не говорю что флаги это г**но, но приравнивать break к goto - Вы уж извините.
Цитата Сообщение от accept Посмотреть сообщение
while (1) - стиль новичков
Круто, хорошо что я эту конструкцию, почти никогда не использую.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.06.2011, 10:45     Как повторить программу #14
Цитата Сообщение от asics
И я не говорю что флаги это г**но, но приравнивать break к goto - Вы уж извините.
читай профессиональные книги с профессиональным кодом
они прививают хороший стиль (отступы, выделение блоков, запись циклов, объявлений и так далее)

Цитата Сообщение от asics
А может и небыть
программы могут меняться, можно вообще забыть, что писал полгода назад
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
23.06.2011, 10:51     Как повторить программу #15
Цитата Сообщение от accept Посмотреть сообщение
читай профессиональные книги с профессиональным кодом
они прививают хороший стиль (отступы, выделение блоков, запись циклов, объявлений и так далее)
спс за инфу, сам бы я не догадался.

Цитата Сообщение от accept Посмотреть сообщение
программы могут меняться, можно вообще забыть, что писал полгода назад
Я не забуду.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.06.2011, 10:53     Как повторить программу #16
Цитата Сообщение от asics
Я не забуду.
так все говорят, пиши комментарии для себя будущего
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
23.06.2011, 10:55     Как повторить программу #17
Сообщение было отмечено автором темы, экспертом или модератором как ответ
на этом форуме умеют из мухи слона сделать
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
23.06.2011, 10:58     Как повторить программу #18
Цитата Сообщение от accept Посмотреть сообщение
так все говорят
А я зделаю.
Цитата Сообщение от accept Посмотреть сообщение
пиши комментарии для себя будущего
Поживем - увидим.
lqazxsazl
2 / 2 / 0
Регистрация: 22.06.2011
Сообщений: 42
23.06.2011, 10:58  [ТС]     Как повторить программу #19
Цитата Сообщение от easybudda Посмотреть сообщение
C
1
2
3
4
5
6
7
...
char ch;
do {
   /* что-то сделать */
   printf("continue? (y/n): ");
} while ( scanf("%c%*c", &ch) == 1 && ( ch == 'y' || ch == 'Y' ) );
...
Попробовал вот так но программа закрывается в любом случае.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.06.2011, 11:04     Как повторить программу
Еще ссылки по теме:

C++ повторить введенные символы, за исключением десятичных символов
Повторить исполнение кода C++
Функция, в которой повторить алгоритм любой сортировки n раз C++

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
23.06.2011, 11:04     Как повторить программу #20
эта штука на два перевода строки реагирует, чего не должно быть
считывает любой символ
Yandex
Объявления
23.06.2011, 11:04     Как повторить программу
Ответ Создать тему
Опции темы

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