Jak wypisać dane ze struktury w funkcji?
Ostatnio zmodyfikowano 2013-12-04 13:12
pekfos |
» 2013-12-03 21:13:07 *blablablabla* i niestety wciąż to samo... |
Mamy zrekonstruować kod z opisu, by zobaczyć, co jest w nim nie tak? |
|
mazowiecki_dziad Temat założony przez niniejszego użytkownika |
» 2013-12-03 21:15:34 #include <iostream> #include <stdlib.h>
using namespace std; struct osoba { int ocena_inf; };
int wy() { cout << "Twoja ocena to: " << jan.ocena_inf << endl; }
int main() { { osoba jan; jan.ocena_inf = 5; } int wy(); system( "pause" ); return 0; } In function 'int wy()': [Error] 'jan' was not declared in this scope |
|
pekfos |
» 2013-12-03 21:55:17 No i czemu tu się dziwisz? Zasięg zmiennych to absolutne podstawy.. Jak chcesz używać obiektu w funkcji, przekaż jako argument. |
|
mazowiecki_dziad Temat założony przez niniejszego użytkownika |
» 2013-12-03 22:05:08 trochę pozmieniałem...no i działa :) Pozdrawiam #include <iostream> #include <stdlib.h>
using namespace std;
struct osoba { float ocena_inf; };
osoba we() { osoba jan; cout << "Wprowadz jan.ocena_inf: "; cin >> jan.ocena_inf; return jan; }
osoba wy() { osoba jan; cout << "\n\n\njan.ocena_inf to: " << jan.ocena_inf << "\n\n\n"; }
int main() { we(); wy(); system( "pause" ); return 0; } |
|
pekfos |
» 2013-12-03 22:15:40 Nie działa. Pozdrawiam. |
|
mazowiecki_dziad Temat założony przez niniejszego użytkownika |
» 2013-12-03 22:35:06 Uprościłem kod jeszcze o jedną linijkę...i nadal działa. #include <iostream> #include <stdlib.h> using namespace std;
struct osoba { int ocena_inf; };
osoba we() { osoba jan; cout << "Wprowadz jan.ocena_inf: "; cin >> jan.ocena_inf; }
osoba wy() { osoba jan; cout << "\n\n\njan.ocena_inf to: " << jan.ocena_inf << "\n\n\n"; }
int main() { we(); wy(); system( "pause" ); return 0; }
|
|
pekfos |
» 2013-12-04 13:12:05 Uprościłem kod jeszcze o jedną linijkę...i nadal działa. |
Zyskałeś tylko dodatkowe miejsce o niezdefiniowanym zachowaniu. Program działa tylko dlatego, że nic nie ma między wywołaniami we() i wy(), a kompilator umieścił zmienne jan w podobnym miejscu. Jeśli, między wywołaniami, wywołasz inną funkcję, lub chociaż, przed jednego jana, dodasz jakąś zmienną, program już nie będzie działać prawidłowo. Funkcje - pierwsze starcie |
|
1 « 2 » |