Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak wypisać dane ze struktury w funkcji?

Ostatnio zmodyfikowano 2013-12-04 13:12
Autor Wiadomość
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?
P-98217
mazowiecki_dziad
Temat założony przez niniejszego użytkownika
» 2013-12-03 21:15:34
C/C++
#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
P-98220
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.
P-98232
mazowiecki_dziad
Temat założony przez niniejszego użytkownika
» 2013-12-03 22:05:08
trochę pozmieniałem...no i działa :) Pozdrawiam
C/C++
#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;
}
P-98237
pekfos
» 2013-12-03 22:15:40
Nie działa. Pozdrawiam.
P-98238
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.

C/C++
#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;
}
P-98239
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.
» Kurs C++ » Poziom 2Funkcje - pierwsze starcie lekcja
P-98255
1 « 2 »
Poprzednia strona Strona 2 z 2