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

Очень простой вопрос - C++

Восстановить пароль Регистрация
 
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
29.10.2011, 18:17     Очень простой вопрос #1
до смешного простой)

как прервать выполнение ФУНКЦИИ в процессе работы программы?

return 0; в этом случае не подходит т.к. завершает программу в целом, а мне нужно просто чтобы завершилась функция и управление вернулось в фун-ю main.

наверное дело в том что я не знаю, что гуглить иначе бы сам все нашел.

для справки псевдокод:
Код
void show()
{
     открытие файла
     если файла нет
          сказать: файла нет!
     иначе
          читаем из файла инфу
}

void main()
{
     show()
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2011, 18:17     Очень простой вопрос
Посмотрите здесь:

C++ Очень простой вопрос про циклы
Простой вопрос C++
простой и глупый вопрос C++
Простой вопрос C++
C++ простой вопрос по файлам
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Сыроежка
Заблокирован
29.10.2011, 18:29     Очень простой вопрос #2
Цитата Сообщение от GBIT Посмотреть сообщение
до смешного простой)

как прервать выполнение ФУНКЦИИ в процессе работы программы?

return 0; в этом случае не подходит т.к. завершает программу в целом, а мне нужно просто чтобы завершилась функция и управление вернулось в фун-ю main.

наверное дело в том что я не знаю, что гуглить иначе бы сам все нашел.

для справки псевдокод:
Код
void show()
{
     открытие файла
     если файла нет
          сказать: файла нет!
     иначе
          читаем из файла инфу
}

void main()
{
     show()
}
Ваша функция объявлена как возвращающая тип void. Тип void не имеет значений, поэтому использовать в функции предложение return 0; некорректно. Компилятор должен сообщить об ошибке, что вы пытаетесь вернуть из функции целочисленное значение в то время, как функция ничего возвращать не должна.

В вашей функции show с ее заданной логикой выполнения предложение return вообще не требуется. Функция завершит свою работу, как только ее выполнение достигнет закрывающейся фигурной скобки тела функции.
Но если уж вам так хочется вставить предложение с return, то вы должны просто написать

C++
1
return;
не указывая никакого выражения после ключевого слова return.

Попутно замечу, что в С++ функция main объявляется как возвращающее значение типа int. То есть она должна записываться следующим образом

int main()

Хотя у функции main и указано, что она должна возвращать значение типа int, тем не менее вы можете в main не ставить предложение вида return 0; Тогда, как только выполнении функции main достигнет закрывающейся фигурной скобки внешнего блока тела функции, то будет выполнено действие, как будто бы предложение return 0; присутствует в вашем коде. Это исключение из правил сделано только для функции main. Все остальные функции, если они указывают тип возвращаемого значения, отличный от void должны включать предложение return с соответствующим возвращаемым значением.
-=ЮрА=-
Заблокирован
Автор FAQ
29.10.2011, 18:31     Очень простой вопрос #3
void show()
{

Цитата Сообщение от GBIT Посмотреть сообщение
до смешного простой)
как прервать выполнение ФУНКЦИИ в процессе работы программы?
return 0; в этом случае не подходит т.к. завершает программу в целом, а мне нужно просто чтобы завершилась функция и управление вернулось в фун-ю main.
Вот на Си, в файле data.txt - любая цифра, её будет считывать fscanf
о fscanf здесь
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
#include <stdio.h>
#include <conio.h>
//Функция читает цифру из data.txt
//Если файла нет или чтение неудачно возврат 0
//Если всё ок возврат 1 - число считанніх цифр, я программировал под 1 цифру
int show(int &val)
{
    int nRead = 0;
    FILE * f = fopen("data.txt","r");
    if(!f)
        printf("Error open data.txt\n");
    else
    {
          nRead = fscanf(f,"%d",&val);
          fclose(f);
    }
    return nRead;
}
 
void main()
{
    int val;
    if(show(val))
        printf("Reading success!Read value : %d\n",val);
    printf("Press any key to continue\n");
    getch();
}
Для моего примера в data.txt было записано число 125
Миниатюры
Очень простой вопрос  
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
29.10.2011, 18:37  [ТС]     Очень простой вопрос #4
про то что
Цитата Сообщение от Сыроежка Посмотреть сообщение
Ваша функция объявлена как возвращающая тип void. Тип void не имеет значений, поэтому использовать в функции предложение return 0; некорректно.
я в курсе. мне оно и не нужно в show()

мне просто нужно для случая когда ФАЙЛА НЕТ, чтобы программа вернулась в main и продолжила его выполнять.

так и не услышал ответа на вопрос
Сыроежка
Заблокирован
29.10.2011, 18:39     Очень простой вопрос #5
Цитата Сообщение от GBIT Посмотреть сообщение
про то что

я в курсе. мне оно и не нужно в show()

мне просто нужно для случая когда ФАЙЛА НЕТ, чтобы программа вернулась в main и продолжила его выполнять.

так и не услышал ответа на вопрос
Вы не внимательно читаете то, что вам пишут! Я вам уже написал, если очень нужно вcnаить return, то вы можете это сделать, но не указывая никакого выражения после return.

Напрягите свой интеллект, и еще раз перечитайте, что я вам написал!
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
29.10.2011, 19:05  [ТС]     Очень простой вопрос #6
Сыроежка,
да блин! return он выкидывает из всей программы!

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
#include <iostream>
#include <fstream>
 
using namespace std;
 
void base_show()
{
    ifstream fin_Name;
 
    // открытие файлов БД
    fin_Name.open("name.txt",ios::_Nocreate);
    if(fin_Name==0)
    {
        cout<<"Файл "<<'"'<<"Name.txt"<<'"'<<" не найден!";
        return;
    }
 
    fin_Name.close();
}
int menu_main()
{
    int var;
 
    cout<<"1. Показать БД пользователей\n";
    cout<<"2. Добавить Пользователя\n";
    cout<<"0. Выход\n\n";
    cin>>var;
 
    if(var==1)
    {
        base_show();
    }
/////////////////////////// ХАЧУ СЮДА ВЕРНУТЬСЯ ЕСЛИ ФАЙЛА НЕТ! ///////  <- В ЭТО МЕСТО
    if(var==0)
    {
        system("cls");
        cout<<"To say Goodbye!!! \n\n\n";
        return 0;
    }
}
void main()
{
    setlocale(LC_ALL, "Russian");
 
    menu_main();
    
}
обратите внимание сюда:
C++
1
2
3
4
5
    if(fin_Name==0)
    {
        cout<<"Файл "<<'"'<<"Name.txt"<<'"'<<" не найден!";
        return;
    }
мне после этого нужно вернуться в menu_main()
Сыроежка
Заблокирован
29.10.2011, 19:15     Очень простой вопрос #7
Цитата Сообщение от GBIT Посмотреть сообщение
Сыроежка,
да блин! return он выкидывает из всей программы!

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
#include <iostream>
#include <fstream>
 
using namespace std;
 
void base_show()
{
    ifstream fin_Name;
 
    // открытие файлов БД
    fin_Name.open("name.txt",ios::_Nocreate);
    if(fin_Name==0)
    {
        cout<<"Файл "<<'"'<<"Name.txt"<<'"'<<" не найден!";
        return;
    }
 
    fin_Name.close();
}
int menu_main()
{
    int var;
 
    cout<<"1. Показать БД пользователей\n";
    cout<<"2. Добавить Пользователя\n";
    cout<<"0. Выход\n\n";
    cin>>var;
 
    if(var==1)
    {
        base_show();
    }
/////////////////////////// ХАЧУ СЮДА ВЕРНУТЬСЯ ЕСЛИ ФАЙЛА НЕТ! ///////  <- В ЭТО МЕСТО
    if(var==0)
    {
        system("cls");
        cout<<"To say Goodbye!!! \n\n\n";
        return 0;
    }
}
void main()
{
    setlocale(LC_ALL, "Russian");
 
    menu_main();
    
}
обратите внимание сюда:
C++
1
2
3
4
5
    if(fin_Name==0)
    {
        cout<<"Файл "<<'"'<<"Name.txt"<<'"'<<" не найден!";
        return;
    }
мне после этого нужно вернуться в menu_main()
Не может предложение return в какой-то функции за исключением функции main "выкинуть из всей программы"! Так что не фантазируйте!

Вы не можете "туда вернуться", как вы написали, так как там стоит альтернативное условие. Либо выполняется код, когда var == 1. либо когда var == 0.
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
29.10.2011, 19:18  [ТС]     Очень простой вопрос #8
Цитата Сообщение от Сыроежка Посмотреть сообщение
Не vj;tn предложение return
т.е. этакое желание исполнить return не может?

а я вопрос с чего начал???
Цитата Сообщение от GBIT Посмотреть сообщение
return 0; в этом случае не подходит т.к. завершает программу в целом
я понимаю что через return такое не сделать

а КАК сделать то?
блин. ну вопрос я уверен что простой. ну не ужели так сложно понять меня?
Сыроежка
Заблокирован
29.10.2011, 19:21     Очень простой вопрос #9
Цитата Сообщение от GBIT Посмотреть сообщение
т.е. этакое желание исполнить return не может?

а я вопрос с чего начал???

я понимаю что через return такое не сделать

а КАК сделать то?
блин. ну вопрос я уверен что простой. ну не ужели так сложно понять меня?
Перечитайте еще раз последнее мое сообщение!
Проблема не с вопросом, а в том, что вы думать не желаете!
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
29.10.2011, 19:47  [ТС]     Очень простой вопрос #10
Цитата Сообщение от Сыроежка Посмотреть сообщение
Перечитайте еще раз последнее мое сообщение!
ну, итак.
во-первых когда публиковал пост #8 ваш пост содержал:
Цитата Сообщение от GBIT Посмотреть сообщение
Не vj;tn предложение return
И ТОЛЬКО!

во-вторых:
да с чего бы вдруг туда никак не вернуться?? после отрабатывания if(var==1) выполнение программы то продолжается!

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
#include <iostream>
#include <fstream>
 
using namespace std;
 
void base_show()
{
       cout<<"отработала base_show";
       // СЮДА НУЖНО ВСТАВИТЬ ТО ЧТО Я СПРАШИВАЮ СО ЗДЕШНИХ ЗНАТОКОВ
       // не хочу чтобы следующий COUT отработал!
       cout<<"Товарищи! я отработал!";
}
int menu_main()
{
        int var;
 
        cin>>var;
 
        if(var==1)
        {
                base_show();
                // ПУСКАЙ УПРАВЛЕНИЕ ПРИДЕТ В ЭТО МЕСТО. а 2й cout не отрабатывался!
        }
    cout<<"Привет! это то место куда я хочу!"
        if(var==0)
        {
                cout<<"To say Goodbye!!! \n\n\n";
                return 0;
        }
}
void main()
{
        setlocale(LC_ALL, "Russian");
 
        menu_main();
        
}
И этот cout отрабатывает ВНЕ зависимости чему равен var
C++
1
    cout<<"Привет! это то место куда я хочу!"
Сыроежка
Заблокирован
29.10.2011, 19:53     Очень простой вопрос #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int menu_main()
{
        int var;
 
        cin>>var;
 
        if(var==1)
        {
                base_show();
        }
        cout<<"Привет! это то место куда я хочу!"
        if(var==0)
        {
                cout<<"To say Goodbye!!! \n\n\n";
                return 0;
        }
}
Куда вы должны вернуться?! У вас предложение return стоит только в блоке кода, если var == 0 Поэтому поведение вашей программы неопределенное, так как в случае var == 1 непонятно, какое значение и куда возвращает ваша функция.

Вынесите return из блока кода с var == 0.
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
29.10.2011, 20:20  [ТС]     Очень простой вопрос #12
кароче. нашел пока только одно решение моего вопроса - это использование goto
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
#include <iostream>
 
using namespace std;
 
void base_show()
{
       cout<<"отработала base_show";
       goto METKA;
       /////////////////////////куча действий которые я хочу обойти в случае если у меня тут какое-нибудь условие выполнится
METKA:
}
int menu_main()
{
        int var;
 
        cin>>var;
 
        if(var==1)
        {
                base_show();
                return 0;
        }
        if(var==0)
        {
                cout<<"To say Goodbye!!! \n\n\n";
                return 0;
        }
}
void main()
{
        setlocale(LC_ALL, "Russian");
 
        menu_main();
        
}
а return тут вообще не к чему. можно main_menu вообще переделать в void.
просто программу еще только пишу и по задумке возможно return мне еще понадобится для других if

очень простой вопрос оказался чрезвычайно сложным
I2um1
Злой няш
 Аватар для I2um1
1334 / 1032 / 114
Регистрация: 05.04.2010
Сообщений: 1,811
29.10.2011, 20:22     Очень простой вопрос #13
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
#include <iostream>
 
using namespace std;
 
bool base_show()
{
       cout<<"отработала base_show";
       return true; // Или false, смотря что надо
}
void menu_main()
{
        int var;
 
        cin>>var;
 
        if(var==1)
        {
                if(base_show()) return;
        }
        if(var==0)
        {
                cout<<"To say Goodbye!!! \n\n\n";
        }
}
void main()
{
        setlocale(LC_ALL, "Russian");
 
        menu_main();
        
}
Лучше не использовать goto. Да и пример вы кривой привели, а все потому, что код некорректно спроектирован.
-=ЮрА=-
Заблокирован
Автор FAQ
29.10.2011, 20:37     Очень простой вопрос #14
Цитата Сообщение от GBIT Посмотреть сообщение
return тут вообще не к чему. можно main_menu вообще переделать в void.
просто программу еще только пишу и по задумке возможно return мне еще понадобится для других if
очень простой вопрос оказался чрезвычайно сложным
GBIT, не в обиду вам void main() - это такой же атавизм как и хвостовой отдел позвоночника у человека.Сыроежка, вам всё правильно написал, стандарт С++ да и Си даже не рекомендуют а требуют использования int main(). Я Вам написал с void main() т.к. писал под ваш код "старого Си", который мягко сказать некошерен. Ваше меню в консоли можно реализовать кучей способов: от циклов и switch до функции меню как у вас, из некошерных способов можно и рекурсию мэйн приплести(но я вам этого не рекомендую, написал для расширения кругозора), можно и оператором безусловного перехода goto. Кстати некоторые из современных компиляторов допускают вообще такую запись main(){} (опуская тип мєйн и возвращаемое значние), но это не значит что main(){} это void main - а значит что это int main()...
PS:Ваше задание предполагало наличие файлового потока
Цитата Сообщение от GBIT Посмотреть сообщение
открытие файла
* * *если файла нет
* * * * * сказать: файла нет!
- а здесь уже выкладываете код вроди менюшный, а там кто его знает что вы вообще там себе думаете...

Цитата Сообщение от GBIT Посмотреть сообщение
goto METKA;
Цитата Сообщение от GBIT Посмотреть сообщение
METKA:
* * * * }
- по поводу этого скажу что оператор goto нерекомендум но иногда допустим, НО ПРЫГАТЬ КАК У ВАС ОТ ФУНКЦИИ К ФУНКЦИИ ЭТО УЖЕ НИ В КАКИЕ ВОРОТА!!!ЭТО КРАЙНЕ НЕПРАВИЛЬНО, нравится вам это или нет. Так что подумайте может что то не так у вас а не у тех кто вам помочь пытается
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
29.10.2011, 21:04  [ТС]     Очень простой вопрос #15
ОК, ОК.
успокоился, собрался.
следую вашим советам.

про main() категорически понял с первого раза. просто не переправлял ведь суть моего вопроса не в этом. сейчас пофиксил.
goto если честно я сам не люблю и такое вообще не использую. пришел на форум за ответом для того чтобы не использовать его, а сделать по грамотному.

привожу код моей программы с некоторой вырезкой мест ибо они тут не к чему.
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <fstream>
 
using namespace std;
 
void base_show()
{
    system("cls");
 
    ifstream fin_Name,fin_Data,fin_Balance;
 
    char Name[20],Data[10];
    int Balance;
 
    // открытие файлов БД
    fin_Name.open("name.txt",ios::_Nocreate);
    if(fin_Name==0)
    {
        cout<<"Файл "<<'"'<<"Name.txt"<<'"'<<" не найден!";
                system("pause");
    }
    fin_Data.open("data.txt",ios::_Nocreate);
    if(fin_Name==0)
    {
        cout<<"Файл "<<'"'<<"Data.txt"<<'"'<<" не найден!";
                system("pause");
    }
    fin_Balance.open("Balance.txt",ios::_Nocreate);
    if(fin_Name==0)
    {
        cout<<"Файл "<<'"'<<"Balance.txt"<<'"'<<" не найден!";
                system("pause");
    }
    // открылись файлы БД
 
    // построение таблицы на терминале
    fin_Name>>Name;
    cout<<Name;
 
    // и т.д. тут куча всего.
 
    fin_Name.close();
    fin_Data.close();
    fin_Balance.close();
 
    system("pause");
}
 
void menu_main()
{
    int var;
 
    cout<<"1. Показать БД пользователей\n";
    cout<<"2. Добавить Пользователя\n";
    cout<<"0. Выход\n\n";
    cin>>var;
 
    if(var==1)
    {
        base_show();
    }
    if(var==0)
    {
        system("cls");
        cout<<"To say Goodbye!!! \n\n\n";
        return 0;
    }
}
 
int main()
{
    
    setlocale(LC_ALL, "Russian");
 
    menu_main();
    
    return 0;
}
какую картину я хочу видеть?
при открытии первого файла
C++
1
2
3
4
5
    fin_Name.open("name.txt",ios::_Nocreate);
    if(fin_Name==0)
    {
        cout<<"Файл "<<'"'<<"Name.txt"<<'"'<<" не найден!";
    }
(интересует случай когда файла нет)
хочу наблюдать в консоли сообщение: Файл "Name.txt" не найден!
и далее программа должна выходить в главное меню.
(в случае если у меня будет отсутствовать файл "Data.txt" нужно чтобы программа закрыла поток чтения из файла "Name.txt" и выкинул в главное меню).

при использовании команды return 0 я получаю выход из всей программы.

Не по теме:

думаю пояснять не нужно, что я хотел сказать фразой выход из всей программы



в ответ хотелось бы получить не готовый код а просто идею как мне реализовать мой запрос.

Не по теме:

как я понял такой команды просто не существует для прерывания работы функции.
(думал что есть что-то существует команда для функции выполняющая аналогичные действия что и break для цикла)

aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
30.10.2011, 01:53     Очень простой вопрос #16
GBIT, return в функции base_show() работает. Программа у тебя закрывалась, потому что после выхода из base_show() в функцию показа меню, а затем в main у тебя не было задержки экрана (system("pause"); - в main не было и консоль сразу закрывалась, вот тебе и казалось, что завершается программа целиком, а не просто функция base_show());
Посмотри на этот код
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
#include <iostream>
#include <fstream>
 
using namespace std;
 
void base_show()
{
        system("cls");
 
        ifstream fin_Name;
  
        // открытие файлов БД
        fin_Name.open("name.txt",ios::_Nocreate);
        if(fin_Name==0)
        {
                cout<<"Файл "<<'"'<<"Name.txt"<<'"'<<" не найден!\n";
                system("pause");
         return; //добавила эту строку
        }
        // и т.д. тут куча всего.
 
}
 
void menu_main()
{
        int var;
 
        cout<<"1. Показать БД пользователей\n";
        cout<<"2. Добавить Пользователя\n";
        cout<<"0. Выход\n\n";
        cin>>var;
 
        if(var==1)
        {
                base_show();
        }
 
        cout<<"Сюда вернулось при отсутствии файла Name.txt\n";
        if(var==0)
        {
                system("cls");
                cout<<"To say Goodbye!!! \n\n\n";
        }
}
 
int main()
{
        
        setlocale(LC_ALL, "Russian");
 
        menu_main();
        cout<<"А сюда я возвращаюсь после menu_main\n";
        system("pause"); //добавила эту строку
        return 0;
}
При его запуске видно, куда передается управление и все тексты из cout печатаются
Очень простой вопрос
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2011, 07:29     Очень простой вопрос
Еще ссылки по теме:

простой вопрос по с++ C++
C++ Супер простой вопрос
Простой вопрос C++

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

Или воспользуйтесь поиском по форуму:
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
30.10.2011, 07:29     Очень простой вопрос #17
Цитата Сообщение от GBIT Посмотреть сообщение
хочу наблюдать в консоли сообщение: Файл "Name.txt" не найден!
и далее программа должна выходить в главное меню.
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <iostream>
#include <fstream>
 
using namespace std;
 
int base_show()
{
        system("cls");
        ifstream fin_Name,fin_Data,fin_Balance;
 
        char Name[20],Data[10];
        int Balance;
 
        // открытие файлов БД
        fin_Name.open("name.txt",ios::_Nocreate);
        if(fin_Name==0)
        {
                cout<<"Файл "<<'"'<<"Name.txt"<<'"'<<" не найден!";
                system("pause");
                return (1);
        }
        fin_Data.open("data.txt",ios::_Nocreate);
        if(fin_Name==0)
        {
                cout<<"Файл "<<'"'<<"Data.txt"<<'"'<<" не найден!"; // сюда добавить закрытие name
                system("pause");
                return (1);
        }
        fin_Balance.open("Balance.txt",ios::_Nocreate);
        if(fin_Name==0)
        {
                cout<<"Файл "<<'"'<<"Balance.txt"<<'"'<<" не найден!"; // сюда добавить закрытие name и data
                system("pause");
                return (1);
        }
        // открылись файлы БД
 
        // построение таблицы на терминале
        fin_Name>>Name;
        cout<<Name;
 
        // и т.д. тут куча всего.
 
        fin_Name.close();
        fin_Data.close();
        fin_Balance.close();
 
        system("pause");
        return (0);
}
 
int menu_main()
{
        int var;
        int re;
 
        cout<<"1. Показать БД пользователей\n";
        cout<<"2. Добавить Пользователя\n";
        cout<<"0. Выход\n\n";
        cin>>var;
 
        if(var==1)
        {
                re=base_show();
                return (re);
        }
        if(var==0)
        {
                system("cls");
                cout<<"To say Goodbye!!! \n\n\n";
                return (0);
        }
}
 
int main()
{
        
        setlocale(LC_ALL, "Russian");
        int res=1;
        while (res)
        {
         res=menu_main();
        }
        return 0;
}
return то, что доктор прописал, надо просто пользоваться правильно
Yandex
Объявления
30.10.2011, 07:29     Очень простой вопрос
Ответ Создать тему
Опции темы

Текущее время: 13:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru