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

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

19.11.2011, 21:35. Показов 2697. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru