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

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

19.11.2011, 21:35. Показов 2781. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.11.2011, 21:35
Ответы с готовыми решениями:

Как заставить повторять действие несколько раз
&lt;html&gt; &lt;head&gt; &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&gt; &lt;style&gt; body { font-family: Verdana; ...

Поскажите как правильно присвоить значение из Memo в массив
int i,j,n,x; float A={1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10}; float B; for (j=0;j&lt;=9;j++) B=0; Memo2-&gt;Lines-&gt;LoadFromFile(&quot;a.txt&quot;); ...

Поскажите как из такого выражения вывести А.Где и что я не правильно делаю?
5=А(2* 16/А2 -1) У меня вот что получается. 5-А(2* 16/А2 -1)=0 (5А3-32А2+А4)/А3=0 А2 (5А-32+А2)/А3=0 И...

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

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

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


Так ведь?
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
19.11.2011, 22:02
Нет, не так. У тебя блок цикла while заканчивается в конце строки. Т.е. переменная ch не обновляется.
0
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 27
19.11.2011, 22:15  [ТС]
Цитата Сообщение от lazybiz Посмотреть сообщение
Нет, не так. У тебя блок цикла while заканчивается в конце строки. Т.е. переменная ch не обновляется.

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

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

Добавлено через 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
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
19.11.2011, 22:40
Цитата Сообщение от mc.Duck Посмотреть сообщение
Удаляться могут только динамически созданные.
Это пока прога работает, а при закрытии удалятся и статические, ТСу же походу как раз и надо удалить при закрытии.
0
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 27
19.11.2011, 22:40  [ТС]
Ну вот к примеру я выбираю в конце "у"...После чего у меня этот весь "туалет" запускается по новой, и доходя до места где мне необходимо ввести букву соответствующую имени case-а, я ее ввожу, но switch возвращает значение по умолчанию(Мол не знаю таких)...т.е., "у", остался в памяти и записался по новой в
C++
1
scanf("%c", &c);
и уже до лямки то, что я ввел к примеру "b"...Как этого избежать...?
lazybiz , спасибо, что уделяете время)
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
19.11.2011, 23:10
Цитата Сообщение от taras atavin Посмотреть сообщение
Это пока прога работает, а при закрытии удалятся и статические.
При закрытии и вся прога удалиться из памяти если на то пошло.

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

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


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

Добавлено через 7 минут
ОЙ,йойой...Стойте не надо!!!Я уже нашел свою ошибку!
Не сменил все на char, компилировал не тот исходник...а то их тут у меня 3 разных открыто)
Большое Вам спасибо)))Вы очень помогли, теперь я знаю в чем просчитался, и как нельзя делать)))
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
19.11.2011, 23:59
Одно "НО":
1. Тут не заменяны некоторые операторы. (например printf)
2. cin в string не канает. поэтому строки закомментированы.
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
57
58
#include <Windows.h>
#include <iostream>
#include <string>
 
using namespace std; 
 
int main()
{
    char ch;
    do {
        char c;
 
        printf("\nVariant:\n");
        printf("a. Open file\n");
        printf("b. Open folder\n");     
        printf("c. Find\n");     
        printf("\n Enter letter:");
        printf("\0");
        cin >> c;
 
        switch ( c ) // заголовок оператора выбора
        {
            case 'a': 
            case 'A':     
            {
                string fileName;
                cout << "Введите имя файла для открытия: ";
//              cin >> fileName;
                ShellExecute(NULL, "open", fileName.c_str(), NULL, NULL, SW_SHOWNORMAL); //Функция ShellExecute для работы из инструментария Windows Development
            }break;//первая ячейка для открытия фала
 
            case 'b':
            case 'B':
            {
                string fileName;
                cout << "Введите путь папки: ";
//              cin >> fileName;
                ShellExecute(NULL, "explore", fileName.c_str(), NULL, NULL, SW_SHOWNORMAL); 
            } break;
 
            case 'c': 
            case 'C':
            {
                string fileName;
                cout << "Введите имя файла для поиска: ";
//              cin >> fileName;
                ShellExecute(NULL, "find", fileName.c_str(), NULL, NULL, SW_SHOWNORMAL); 
            }break;
 
            default: printf("\nНе знаю я таких!"); // по умолчанию
 
        }
 
        cout << "continue? (y/n): ";
        cin >> ch;
    } while ( ch == 'y' || ch == 'Y' );
    return 0;
}
1
0 / 0 / 0
Регистрация: 18.09.2011
Сообщений: 27
20.11.2011, 11:35  [ТС]
А от так у меня работает
C++
1
std::cin >> fileName;
И вместо printf -
C++
1
cout <<();
стоит...Все воркед)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.11.2011, 11:35
Помогаю со студенческими работами здесь

Как правильно использовать класс на VBA, чтобы не повторять один и тот же код?
Люди добры подскажите правильно использовать класс на VBA что бы не повторять один и тот же код. зарание большое спасибо.

Как правильно завершить программу, имеющей несколько окон
C# Есть одна форма (основная, скажем так), на которой находится веб-браузер. После авторизации, данная форма закрывается (this.Hide() ) и...

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

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

При нажатии кнопки несколько раз, масштабирование выполняется не правильно
При нажатии кнопки несколько раз, масштабирование выполняется не правильно Помогите исправить код void __fastcall...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru