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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.63
lqazxsazl
2 / 2 / 0
Регистрация: 22.06.2011
Сообщений: 42
#1

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

23.06.2011, 00:02. Просмотров 6972. Ответов 45
Метки нет (Все метки)

Как сделать чтоб если я с клавиатуры в консоли введу "y" программа повторилась а если "n" то завершилась?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2011, 00:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как повторить программу (C++):

Возможно ли как-то перехватить действия процесса и повторить их? - C++
Доброго времени суток всем! Есть программа управляющая скоростью кулера. Я хотел бы каким-то образом записать и повторить действия,...

Как прочитать первую строку из файла а остальной текст повторить несколько раз? - C++
Я новичок в этом деле, прошу не осуждать. Помогите разобраться. Задание такое: Программа должна начать читать запись шоколада с...

Повторить исполнение кода - C++
Разработал такой супер-код, подскажите, как сделать, чтобы после последнего "mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); " сделать, чтобы...

Препод задал повторить сервис на с++ - C++
Есть интернет сервис - ip-calculator.ru Препод задал повторить его на с++. Часть уже выполнена, калькулятор может считать адресс...

Повторить последний минимальный элемент массива - C++
Дан одномерный целочисленный массив из N элементов. Повторить (вставить после или до него такой же) последний минимальный элемент массива;

Повторить строку вектора несколько раз - C++
Ну вот что со мной не так?)) #include <iostream> #include <clocale> #include <ctime> using namespace std; int...

45
kravam
быдлокодер
1696 / 883 / 45
Регистрация: 04.06.2008
Сообщений: 5,471
23.06.2011, 19:32 #31
Мы, одинокие стареющие мужчины, делаем так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h> 
#include <conio.h> 
int main () {
 char per= 'y';;
 while (per== 'y'|| per== 'Y') {
  printf ("prodolzhit?\n");
  do {
   per= getch ();
  }
  while (per!= 'y'&&per!= 'Y'&&per!= 'N'&&per!= 'n');
 }
 return 0;
}
1
easybudda
Модератор
Эксперт CЭксперт С++
9663 / 5613 / 952
Регистрация: 25.07.2009
Сообщений: 10,777
23.06.2011, 22:38 #32
Цитата Сообщение от lqazxsazl Посмотреть сообщение
путаю еще...
ну тогда постарайтесь запомнить:
char (character) - символьный тип данных, собственно для хранения символов в основном и используется.
int (integer) - целочисленный тип данных. Подходит для хранения индекса в массиве, календарного числа, месяца или года, количества учащихся в классе (был, помню, старый мультик, там у ученика в задаче 1 1/2 землекопа получилось), etc...
float (floating point) - вещественный тип "обычной" точности. Служит для хранения десятичных дробей. Примечателен тем, что совершенно непредсказуемо порой округляет хранимые значения. Использовать можно разве, что при серьёзной необходимости экономить память, пусть даже в ущерб точности.
double (double precision floating point) - вещественный тип "двойной" точности. Тот самый тип данных, который в большинстве случаев нужно использовать для хранения вещественных чисел.
2
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
24.06.2011, 02:09 #33
Цитата Сообщение от easybudda
эта штука считывает введённую букву и пропускает символ '\n
эта штука реагирует на два пробела, как на ввод буквы, потому что спецификатор %c отличается от %s
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
24.06.2011, 02:34 #34
Цитата Сообщение от accept Посмотреть сообщение
while (1) - стиль новичков
а что
C
1
for(;;)
тру?
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
24.06.2011, 03:12 #35
это точно такие же break
одно дело, когда ты ставишь бесконечный цикл, когда без этого не обойтись, а другое - когда ты ставишь бесконечные циклы, расчитывая на break'и, потому что так проще по логике, и типа "не надо продумывать качественное условие выхода"

нужен один вход и один выход, тогда любые внутренние изменения цикла не затрагивают его ход
чего не скажешь про break'и, которые чуть что, надо сразу переписывать, или вообще переставлять местами, причём все
1
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1305 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
24.06.2011, 06:08 #36
Цитата Сообщение от accept Посмотреть сообщение
которые чуть что, надо сразу переписывать, или вообще переставлять местами, причём все
о_0 С какого перепугу?
Разумеется, гораздо удобнее напихать в цикле кучу ифов, проверяющих на каждой итерации цикла необходимость выполнения кода, находящегося после изменения флага завершения. Ну и что, что цикл потенциально бесконечный и лишний (даже один) иф приравнивается к бесконечной потери времени... Кому какое дело, ведь break так внезапно код прерывает, что даже деструкторы от удивления не вызываются, глобальное потепление начинается и пингвины подняться не могут...
0
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
24.06.2011, 10:08 #37
break - это jmp из выхода за условие цикла кто-то думает что когда цикл прервётся ниже его код выпониться это особенно новички так break на ASM кидает за цикл метку. Два цикла ни чем друг от друга не отличаются.

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
    while(1) {
            
        printf("input word: ");
        char buff[32];
        scanf("%s", buff);
        if(! stricmp(buff, "exit"))
            break;
 
        printf("\tprint: %s\n", buff);
 
    }
 
    // здесь goto
 
    while(1) {
 
                      printf("input word: ");
        char buff[32];
        scanf("%s", buff);
        if(! stricmp(buff, "exit"))
            goto  jmp;
            
        printf("\tprint: %s\n", buff);
 
    }
jmp:   ;
0
easybudda
Модератор
Эксперт CЭксперт С++
9663 / 5613 / 952
Регистрация: 25.07.2009
Сообщений: 10,777
24.06.2011, 14:02 #38
Цитата Сообщение от accept Посмотреть сообщение
эта штука реагирует на два пробела, как на ввод буквы
Ну хорошо. Конструкция
C
1
scanf("%c%*c", &ch);
читает из потока ввода два символа (вернее пытается прочитать). Первый прочитанный присваивает переданной переменной, а второй просто отбрасывает. В качестве учебного примера (учитывая уровень ТС) вполне достаточно. Но. Если мы решим почувствовать себя кулхацкерами, или кем-то вроде, и захотим взломать этот код, то начинать, конечно, нужно с добавления кучи пробелов после буквы 'y'...


xAtom, я думаю, основная идея в том, чтобы внутри тела цикла небыло заморочек по поводу им (циклом) управления, кроме, разумеется, случаев аварийного завершения. Кстати, в принципе согласен. Тело цикла - одна история, а сколько раз и при каких условиях это тело должно отработать - совсем другая...
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
25.06.2011, 05:38 #39
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C
1
scanf("\t%c%*c", &ch);
0
easybudda
Модератор
Эксперт CЭксперт С++
9663 / 5613 / 952
Регистрация: 25.07.2009
Сообщений: 10,777
25.06.2011, 09:58 #40
C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
int main(void){
    char ch;
    
    while ( scanf("\t%c%*c", &ch) == 1 )
        printf("%#x\n", (unsigned)ch);
    
    return 0;
}
тот же
Как повторить программу
только в профиль...
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
26.06.2011, 07:44 #41
вместо "A" введи " A" или просто на enter жмёшь
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
26.06.2011, 22:47 #42
Цитата Сообщение от Mиxaил Посмотреть сообщение
если можно поставить контроль событий (bool переменную), и плавно по ней выйти?!
Что-что, bool в с++ работает не самым лучшим образом и это признано так что заменять break булевкой переменной не есть гуд.
0
grizlik78
Эксперт С++
1957 / 1450 / 116
Регистрация: 29.05.2011
Сообщений: 3,012
26.06.2011, 22:49 #43
Цитата Сообщение от Gepar Посмотреть сообщение
Что-что, bool в с++ работает не самым лучшим образом и это признано так что заменять break булевкой переменной не есть гуд.
Кем признано? Где?
0
easybudda
Модератор
Эксперт CЭксперт С++
9663 / 5613 / 952
Регистрация: 25.07.2009
Сообщений: 10,777
26.06.2011, 22:49 #44
Цитата Сообщение от Gepar Посмотреть сообщение
bool в с++ работает не самым лучшим образом
Вот с этого момента поподробнее... А в чём проблема?
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
26.06.2011, 23:40 #45
речь наверно о си, хотяяя.. его же там нет
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2011, 23:40
Привет! Вот еще темы с ответами:

повторить введенные символы, за исключением десятичных символов - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string&gt; int _tmain(int argc, _TCHAR* argv) { setlocale(LC_ALL, &quot;Russian&quot;); ...

Функция, в которой повторить алгоритм любой сортировки n раз - C++
Как сделать функцию, которая бы повторяла алгоритм любой сортировки n кол-во раз( n вводится с клавиатуры). Каждя сортировка должна...

Возможность повторить расчет с новыми данными не выходя из программы. - C++
Подскажите пожалуйста, как на С++ будет писаться код, который на Паскале пишется так: program Laba; Label 1; ch :char; 1: ...

Если длина строки меньше заданной, то повторить ввод - C++
есть массив из длины 21 елемент, надо зделать проверку, если длина &gt; заданой повторить ввод. #include &lt;string&gt; #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
45
Yandex
Объявления
26.06.2011, 23:40
Ответ Создать тему
Опции темы

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