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

возврат - C++

Восстановить пароль Регистрация
 
-J_O_K_E_R-
 Аватар для -J_O_K_E_R-
3 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 82
30.09.2013, 15:48     возврат #1
пример:

функция была выполнена с ошибкой, как сделать возврат на предыдущее функцию?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2013, 15:48     возврат
Посмотрите здесь:

Возврат почему же?! C++
Возврат значения С++ C++
C++ Возврат массива
возврат вектора из ф-ии C++
Возврат в функцию C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
30.09.2013, 15:49     возврат #2
Что значит "возврат"? Приведи пример кода.
Бендерродригез
Сгибальщик
 Аватар для Бендерродригез
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
30.09.2013, 15:50     возврат #3
-J_O_K_E_R-, вызывать функцию в блоке try.
-J_O_K_E_R-
 Аватар для -J_O_K_E_R-
3 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 82
30.09.2013, 15:51  [ТС]     возврат #4
Цитата Сообщение от CheshireCat Посмотреть сообщение
Что значит "возврат"? Приведи пример кода.

функция


if(swprintf_s(file_name,L"%d",i)!=-1){ ///}

else { возврат на предыдущуюю функцию }
Бендерродригез
Сгибальщик
 Аватар для Бендерродригез
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
30.09.2013, 15:53     возврат #5
Цитата Сообщение от -J_O_K_E_R- Посмотреть сообщение
функция


if(swprintf_s(file_name,L"%d",i)!=-1){ ///}

else { возврат на предыдущуюю функцию }
в таком случае просто return.
-J_O_K_E_R-
 Аватар для -J_O_K_E_R-
3 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 82
30.09.2013, 15:54  [ТС]     возврат #6
Цитата Сообщение от Бендерродригез Посмотреть сообщение
в таком случае просто return.

просто return без каких либо параметров?
Бендерродригез
Сгибальщик
 Аватар для Бендерродригез
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
30.09.2013, 16:00     возврат #7
Цитата Сообщение от -J_O_K_E_R- Посмотреть сообщение
просто return без каких либо параметров?
С параметром, возвращаемым функцией. В той функции, что вызвала, должна быть в таком случае проверка на определённое возвращаемое значение.
Либо переключить какой-то глобальный ключ с false на true, после чего вернуть любое значение, а вызывающая функция проверяет не возвращаемое значение, а значение ключа.
-J_O_K_E_R-
 Аватар для -J_O_K_E_R-
3 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 82
30.09.2013, 16:05  [ТС]     возврат #8
Цитата Сообщение от Бендерродригез Посмотреть сообщение
С параметром, возвращаемым функцией. В той функции, что вызвала, должна быть в таком случае проверка на определённое возвращаемое значение.
Либо переключить какой-то глобальный ключ с false на true, после чего вернуть любое значение, а вызывающая функция проверяет не возвращаемое значение, а значение ключа.


как это реализовать на практике

p.s. начинаю программировать на С++
Бендерродригез
Сгибальщик
 Аватар для Бендерродригез
42 / 42 / 3
Регистрация: 18.05.2013
Сообщений: 220
Завершенные тесты: 1
30.09.2013, 16:23     возврат #9
-J_O_K_E_R-,
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
#include <iostream>
using std::cout;
 
bool key = false;
 
int SomeFunction1(){
    if(условие ошибки) return 999;
    ...
};
 
int SomeFunction2(){
    if(условие ошибки){
        return 999;
        key = true;
    }
    ...
};
 
int main(){
    int a = SomeFunction1();
    if(a == 999) cout << "ошибка";
    int b = SomeFunction2();
    if(key) cout << "ошибка";
    return 0;
}
Хотя лучше подожди, когда дойдёт дело до изучения исключений и их обработки.
-J_O_K_E_R-
 Аватар для -J_O_K_E_R-
3 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 82
30.09.2013, 16:27  [ТС]     возврат #10
Цитата Сообщение от Бендерродригез Посмотреть сообщение
-J_O_K_E_R-,
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
#include <iostream>
using std::cout;
 
bool key = false;
 
int SomeFunction1(){
    if(условие ошибки) return 999;
    ...
};
 
int SomeFunction2(){
    if(условие ошибки){
        return 999;
        key = true;
    }
    ...
};
 
int main(){
    int a = SomeFunction1();
    if(a == 999) cout << "ошибка";
    int b = SomeFunction2();
    if(key) cout << "ошибка";
    return 0;
}
Хотя лучше подожди, когда дойдёт дело до изучения исключений и их обработки.
самоучка я :-)
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
30.09.2013, 16:37     возврат #11
да тут без goto не обойтись...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2013, 17:03     возврат
Еще ссылки по теме:

C++ Возврат коретки
C++ Возврат рекурсии
Возврат ссылки C++

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

Или воспользуйтесь поиском по форуму:
-J_O_K_E_R-
 Аватар для -J_O_K_E_R-
3 / 3 / 0
Регистрация: 29.07.2013
Сообщений: 82
30.09.2013, 17:03  [ТС]     возврат #12
Цитата Сообщение от Tulosba Посмотреть сообщение
да тут без 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
wchar_t file_name[256]=L"\0";
wchar_t buffer[1024]=L"\0";
 
 
r2:
for (int i=999000;i<=1000000;i++){
    r1:
    if((swprintf_s(file_name,L"%d.txt",i))!=-1){
 
        if((swprintf_s(buffer,L"http://wap.***.ru/index.php?ma=hero-profile&heroID=%d%s",i,L"&p=27"))!=-1){
            
            
            wprintf_s(L"%s\n",buffer);
        
        }
 
        else { goto r1; } 
    
    }
 
    else { goto r2; } 
 
 
 
}
Yandex
Объявления
30.09.2013, 17:03     возврат
Ответ Создать тему
Опции темы

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