Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
1

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

11.11.2015, 22:33. Просмотров 794. Ответов 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
Ответы с готовыми решениями:

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

Реализовать передачу параметров по ссылке для приведенной задачи с матрицей
Помогите, пожалуйста, сегодня сдавал программу, которая определяет в...

Как гарантировать передачу единственного параметра через стек?
Как гарантировать передачу единтсвуенного параметра функции в виндузячем x64...

Как можно по другому сделать передачу матрицы в массив?
Точнее передачу матрицы в функции #include &lt;conio.h&gt; #include &lt;stdio.h&gt;...

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

4
nmcf
6277 / 5578 / 2539
Регистрация: 14.04.2014
Сообщений: 23,471
11.11.2015, 23:08 2
Лучший ответ Сообщение было отмечено Mesteriis как решение

Решение

C++
1
bool LoadExclusion(char ch = '\0')
И if() внутри.
0
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 1
11.11.2015, 23:10  [ТС] 3
nmcf, о как все просто, ок мерси
0
Kastaneda
Jesus loves me
Эксперт С++
4940 / 3017 / 346
Регистрация: 12.12.2009
Сообщений: 7,612
Записей в блоге: 2
Завершенные тесты: 1
11.11.2015, 23:17 4
ф-ция сильно перегружена, нелогичный код в одном месте. Просто задай сам себе вопрос
что вывод на экран и выход из программы по вводу пользователя делает в функции, которая читает файл?
Нужно разгрузить ее разделив на несколько мелких ф-ций, тогда такой проблемы (которая в первом посте) вообще не возникнет.

Добавлено через 3 минуты
Вижу такой рефакторинг:
1. ф-ция читает файл и заполняет Excl, возвращает bool
2. если вернула false спросить Файл с исключениями не найден, продолжить без него
3. ф-ция, которая выводит содержимое Excl
4. ф-ция, которая спрашивает пользователя о выходе из программы
1
Mesteriis
379 / 162 / 51
Регистрация: 08.08.2015
Сообщений: 1,148
Завершенные тесты: 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

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

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

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


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

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

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