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

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

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

Поскажите как правильно повторять программу несколько раз - C++

19.11.2011, 21:35. Просмотров 989. Ответов 16
Метки нет (Все метки)

Вот я состряпал небольшой бред недоучки...и никак не могу сделать правильное повторение данных действий...Я не пойму как правильно удалить переменную из памяти после того как выбираю вариант "у", она ведь остается и опять записывается в
C++
1
scanf("%c%*c", &c);
Будьте добры помогите...
Вот:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <string>
#include <Windows.h>
#include <stdio.h>
 
 
int main(void)
 
{
char ch;
        do {
    int a,b,c;
printf("\nÂûáåðèòå ГўГ*ðèГ*Г*ГІ:\n");
    printf("a.Îòêðûòèå ГґГ*éëîâ\n");
    printf("b.Îòêðûòèå ГЇГ*ïîê\n");
    printf("c.Ïîèñê ГґГ*éëîâ\n");     
printf("\nÂâåäèòå ïåðâóþ ГЎГіГЄГўГі ГЇГіГ*ГЄГІГ* äëÿ âûáîðГ*:");
    printf("\0");
scanf("%c%*c", &c); // ГўГўГҐГ±ГІГЁ ГЎГіГЄГўГі
///////////////////////////////////////////////////////////////////////////////
switch ( c ) // Г§Г*ãîëîâîê îïåðГ*òîðГ* âûáîðГ*
{
case 'a': 
case 'A':     
{
     std::string fileName;
     std::cout << "Ââåäèòå èìÿ ГґГ*éëГ* äëÿ îòêðûòèÿ: ";
     std::cin >> fileName;
ShellExecute(NULL, "open", fileName.c_str(), NULL, NULL, SW_SHOWNORMAL); //ÔóГ*êöèÿ ShellExecute äëÿ Г°Г*áîòû ГЁГ§ ГЁГ*ñòðóìåГ*ГІГ*ðèÿ Windows Development
}break;//ïåðâГ*Гї ÿ÷åéêГ* äëÿ îòêðûòèÿ ГґГ*Г«Г*
///////////////////////////////////////////////////////////////////////////////
case 'b':
case 'B':
{
     std::string fileName;
     std::cout << "Ââåäèòå ГЇГіГІГј ГЇГ*ГЇГЄГЁ: ";
     std::cin >> fileName;
ShellExecute(NULL, "explore", fileName.c_str(), NULL, NULL, SW_SHOWNORMAL); 
} break;
///////////////////////////////////////////////////////////////////////////////
case 'c': 
case 'C':
{
     std::string fileName;
     std::cout << "Ââåäèòå èìÿ ГґГ*éëГ* äëÿ ïîèñêГ*: ";
     std::cin >> fileName;
ShellExecute(NULL, "find", fileName.c_str(), NULL, NULL, SW_SHOWNORMAL); 
}break;
default: printf("\nГЌГҐ Г§Г*Г*Гѕ Гї ГІГ*ГЄГЁГµ!"); // ГЇГ® óìîë÷Г*Г*ГЁГѕ
}
//////////////////////////////////////////////////
std::cout << "continue? (y/n): ";////////////////
std::cin >> ch;/////////////////////////////////
} while ( ch == 'y' || ch == 'Y'  );///
         return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2011, 21:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поскажите как правильно повторять программу несколько раз (C++):

Как правильно передать несколько данных в программу из функции? - C++
В функции outArray формирую массив, а затем адрес первого элемента массива вместе с количеством строк и столбцов массива передаю в...

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

поскажите или напишите программу с циклом for - C++
Предположим, что A говорит: &quot;Или я лжец, или два плюс два - пять&quot;. К какому заключению можно прийти на основании этого...

поскажите или напишите программу с циклом if( - C++
29. Предположим, что A говорит: &quot;Или я лжец, или B рыцарь&quot;. Кто из двух персонажей A и B рыцарь и кто лжец?

Как вывести на экран несколько раз - C++
В задании надо чтобы целое значение (b) вводилось с клавиатуры 4 раза, соответственно потом (x) и (y) выводятся на экран после каждого...

Вывести числа, которые встречаются в массиве несколько раз / один раз - C++
дан массив состоящий из 100 целых чисел. а)Вывести все числа,которие встречаются в етом массиве несколько раз б)Вывести все...

16
mc.Duck
Заблокирован
19.11.2011, 21:39 #2
Rev, Какую переменную? У тебя же даже нет ниодного объявления динамической переменной)
Удаляться могут только динамически созданные.
0
Rev
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 27
19.11.2011, 21:42  [ТС] #3
Цитата Сообщение от mc.Duck Посмотреть сообщение
Rev, Какую переменную? У тебя же даже нет ниодного объявления динамической переменной)
Удаляться могут только динамически созданные.

Ну судя по написанию можно было ведь предположить, что я человек немного как говорится "не в теме" )))
А как тогда поступить в данном случае? Или что конкретно надо предпринять?)
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
19.11.2011, 21:48 #4
Цитата Сообщение от Rev Посмотреть сообщение
scanf("%c%*c", &c); // ввести букву
Вводишь букву, интерпретируешь её как тип char, а записываешь в переменную типа int.
Не комильфо!

Добавлено через 5 минут
А это вообще какой-то трэш:
C++
1
while ( ch == 'y' || ch == 'Y'  );
Скажи, ты понимаешь что это означает?
1
Rev
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 27
19.11.2011, 21:52  [ТС] #5
Цитата Сообщение от lazybiz Посмотреть сообщение
А это вообще какой-то трэш:
C++
1
while ( ch == 'y' || ch == 'Y'  );
Скажи, ты понимаешь что это означает?
Ну когда то, что мы ввели равняется "у", то выполняется опять все по новой, а если что-то другое вводится то оно все закроется.


Так ведь?
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
19.11.2011, 22:02 #6
Нет, не так. У тебя блок цикла while заканчивается в конце строки. Т.е. переменная ch не обновляется.
0
Rev
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 27
19.11.2011, 22:15  [ТС] #7
Цитата Сообщение от lazybiz Посмотреть сообщение
Нет, не так. У тебя блок цикла while заканчивается в конце строки. Т.е. переменная ch не обновляется.

Блин(
Я не знаю как...поступить имея Ваше пожелание...(

Добавлено через 2 минуты
Как просто реализовать повторение этого всего, без той бредятины которую я написал?Я реально в ступоре...
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
19.11.2011, 22:31 #8
Стоп стоп стоп... С последним я погорячился. У тебя просто код как порядок в биотуалете.
Только сейчас полностью вник в вопрос. А что, собственно не так?!! О какой переменной ты говоришь?

Добавлено через 2 минуты
Не зная проблемы, я в твоем коде поменял бы строки:
C++
1
int a,b,c;
на
C++
1
char c;
и
C++
1
scanf("%c%*c", &c);
на
C++
1
scanf("%c", &c);
1
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.11.2011, 22:40 #9
Цитата Сообщение от mc.Duck Посмотреть сообщение
Удаляться могут только динамически созданные.
Это пока прога работает, а при закрытии удалятся и статические, ТСу же походу как раз и надо удалить при закрытии.
0
Rev
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 27
19.11.2011, 22:40  [ТС] #10
Ну вот к примеру я выбираю в конце "у"...После чего у меня этот весь "туалет" запускается по новой, и доходя до места где мне необходимо ввести букву соответствующую имени case-а, я ее ввожу, но switch возвращает значение по умолчанию(Мол не знаю таких)...т.е., "у", остался в памяти и записался по новой в
C++
1
scanf("%c", &c);
и уже до лямки то, что я ввел к примеру "b"...Как этого избежать...?
lazybiz , спасибо, что уделяете время)
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
19.11.2011, 23:10 #11
Цитата Сообщение от taras atavin Посмотреть сообщение
Это пока прога работает, а при закрытии удалятся и статические.
При закрытии и вся прога удалиться из памяти если на то пошло.

Добавлено через 18 минут
Rev, понял о чем ты. Пока сам не соображу. Подожди, сейчас найдем в чем проблема.

Добавлено через 9 минут
В общем меняй целиком код на С++ :
* убери #include <stdio.h>
* между инклудов и main() вставь строку: using namespace std;
* все printf замени на cout
* все scanf замени на cin
1
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
19.11.2011, 23:15 #12
Нда. И принтф, и потоки. Кто так пишет? Rev, ты кильку в компоте не пробовал замачивать? Пельмени на чаю варить? Мороженное в пирожки не научился запихивать? Так чтоб и тесто прожарилось, и мороженное не растаяло? И как ты сам собираешься ориентироваться в этой мешанине стилей?
0
Rev
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 27
19.11.2011, 23:27  [ТС] #13
Цитата Сообщение от taras atavin Посмотреть сообщение
Нда. И принтф, и потоки. Кто так пишет? Rev, ты кильку в компоте не пробовал замачивать? Пельмени на чаю варить? Мороженное в пирожки не научился запихивать? Так чтоб и тесто прожарилось, и мороженное не растаяло? И как ты сам собираешься ориентироваться в этой мешанине стилей?
Я не говорю, что быдлокодер 100%, и что все это офигенно знаю...Понятное дело, у Вас как человека более осведомленного и имеющего именно это направление...вся ситуация вызывает негодование, смех и повышение ЧСВ...
Мне это все понятно.
Кто так пишет? - я по незнанию мат. части так пишу.
А как говорится:"если не знаешь чего-то, не бойся спросить"...
Можете бугагакать долго, проходящие мимо...но вы поржали, а я что-то понял для себя, чтобы не порой в следующем такой фигни.


lazybiz - спасибо, еще раз. За то,что откликнулись.
Поменял я там все...теперь оно сразу же закрывается без задержки...ай ладно, сейчас все перепишу по новой...
0
castaway
Эксперт С++
4884 / 3019 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
19.11.2011, 23:37 #14
Rev, не понял, программа заработала или нет?
Просто у меня после переработки она заработала как надо.
1
Rev
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 27
19.11.2011, 23:51  [ТС] #15
Цитата Сообщение от lazybiz Посмотреть сообщение
Rev, не понял, программа заработала или нет?
Просто у меня после переработки она заработала как надо.
А не могли бы Вы показать текст ее...?У меня оно не работает(
Сразу выкл.
я что-то упустил...значит(

Добавлено через 7 минут
ОЙ,йойой...Стойте не надо!!!Я уже нашел свою ошибку!
Не сменил все на char, компилировал не тот исходник...а то их тут у меня 3 разных открыто)
Большое Вам спасибо)))Вы очень помогли, теперь я знаю в чем просчитался, и как нельзя делать)))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2011, 23:51
Привет! Вот еще темы с ответами:

Как записать команду в консоль windows несколько раз? - C++
Запускаю консоль в цикле, так: for(int k=0;k&lt;=10;k++){ system (&quot;start cmd&quot;); } как мне каждый раз. в открытой консоли,...

Как правильно располагать несколько циклов while ? - C++
Можно ли вот так располагать несколько циклов while ? или между циклами нужны какие-то инструкции ? Почему спрашиваю, выполняется только...

Как правильно использовать несколько файлов - C++
Доброе время суток, появилась необходимость разбить программу на несколько файлов в которых выполняются какие то действия. раньше...

Как использовать одну и ту же переменную несколько раз в одном коде - C++
подскажите как использовать одну и туже переменную несколько раз в одном коде допустим А


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

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

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