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

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

Войти
Регистрация
Восстановить пароль
 
Mesteriis
373 / 156 / 40
Регистрация: 08.08.2015
Сообщений: 1,114
Завершенные тесты: 1
#1

Как реализовать передачу функции ключа или не передачу - C++

11.11.2015, 22:33. Просмотров 168. Ответов 4
Метки нет (Все метки)

Есть функция:
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
bool LoadExclusion()
{
    std::string filename = "Exclusion";
    std::ifstream inFile (filename); //создать поток
    if (!inFile.is_open()) //проверить открыт ли файл
    {
        std::cout<< "Файл с исключениями не найден, продолжить без него? Нет (n)\n";
        std::cin.get();
        if (std::cin.get()=='n') return false;
    }
    Excl.clear();
    myExc.Number=0;
    std::string line, name;
    while (getline(inFile, line)) //прочитать строку
        {
            //парсим прочитанную строку файла
            name = line.substr(0, line.find('\n'));
            myExc.Number++;
            myExc.Name=name;
            Excl.push_back(myExc);
        }
    inFile.close();
    std::cout << "Исключения:\n";
    for (unsigned int i=0; i<Excl.size(); ++i)
        {
            std::cout<< Excl[i].Number<< "e = " <<Excl[i].Name<<std::endl;
        }
    std::cout<<"Продолжаем ENTER, выход n\n";
    if (std::cin.get()=='n')
    {
        std::cout<<"Выход и программы\n";
        sleep(2);
        return false;
    }
    std::cout << "Исключения добавлены"; sleep(1);
    return true;
}
хочу сделать так что при вызове ее так
C++
1
 LoadExclusion()
она выполнялась полностью а при
C++
1
 LoadExclusion("p")
только выполняла вот это
C++
1
2
3
4
5
std::cout << "Исключения:\n";
    for (unsigned int i=0; i<Excl.size(); ++i)
        {
            std::cout<< Excl[i].Number<< "e = " <<Excl[i].Name<<std::endl;
        }
Но что то не знаю даже с какого бока подойти(((
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2015, 22:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как реализовать передачу функции ключа или не передачу (C++):

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

Реализовать передачу параметров по ссылке для приведенной задачи с матрицей - C++
Помогите, пожалуйста, сегодня сдавал программу, которая определяет в целочисленной квадратной матрице: 1.) Сумму элементов только тех...

Как гарантировать передачу единственного параметра через стек? - C++
Как гарантировать передачу единтсвуенного параметра функции в виндузячем x64 приложении через стек? Какое соглашение можно для этого...

Как можно по другому сделать передачу матрицы в массив? - C++
Точнее передачу матрицы в функции #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; int EnterSize(int lim) { int...

Как организовать передачу данных между объектами разных классов? - C++
Есть объект doc в нутрии него создается еще два объекта ui и engine, engine в свою очередь создает еще один объект obj. Вопрос, как из ui...

IdTCP Indy - Как организовать одновременную передачу и текста, и Tstream? - C++
Я токо начал изучать с++ builder тут возник вопрос как организовать одновременную передачу и текста и Tstream как правельно...

4
nmcf
5777 / 5088 / 1739
Регистрация: 14.04.2014
Сообщений: 20,829
11.11.2015, 23:08 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
bool LoadExclusion(char ch = '\0')
И if() внутри.
0
Mesteriis
373 / 156 / 40
Регистрация: 08.08.2015
Сообщений: 1,114
Завершенные тесты: 1
11.11.2015, 23:10  [ТС] #3
nmcf, о как все просто, ок мерси
0
Kastaneda
Jesus loves me
Эксперт С++
4730 / 2934 / 242
Регистрация: 12.12.2009
Сообщений: 7,443
Записей в блоге: 2
Завершенные тесты: 1
11.11.2015, 23:17 #4
ф-ция сильно перегружена, нелогичный код в одном месте. Просто задай сам себе вопрос
что вывод на экран и выход из программы по вводу пользователя делает в функции, которая читает файл?
Нужно разгрузить ее разделив на несколько мелких ф-ций, тогда такой проблемы (которая в первом посте) вообще не возникнет.

Добавлено через 3 минуты
Вижу такой рефакторинг:
1. ф-ция читает файл и заполняет Excl, возвращает bool
2. если вернула false спросить Файл с исключениями не найден, продолжить без него
3. ф-ция, которая выводит содержимое Excl
4. ф-ция, которая спрашивает пользователя о выходе из программы
1
Mesteriis
373 / 156 / 40
Регистрация: 08.08.2015
Сообщений: 1,114
Завершенные тесты: 1
11.11.2015, 23:24  [ТС] #5
Kastaneda, Согласен с тобой полностью, но по сути это моя первая программа которую я пишу на с++, сначала решил просто добиться поставленной цели а потом уже производить оптимизацию и разделения на функции и под функции
0
11.11.2015, 23:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2015, 23:24
Привет! Вот еще темы с ответами:

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

Добавить передачу параметров в методы - C++
Уже перечитал много сайтов по этой теме но не могу сообразить как осуществить передачу параметров в методы. (Программа работает но...

Передачу аргументов в функцию по константному указателю - C++
Собственно, тривиальный пример с тривиальным вопросом, который вскрыл мое незнание. Почему выводит 5, а не 42? #include...

Клиент-сервер - организовать передачу файлов - C++
Написал программу клиент - сервер и хотел бы её модернизировать, но ни хватает знаний и практики. Вот что хотелось бы добавить: 1)в...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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