[c++] stryktura w strukturze + funkcje [ROZWIĄZANY]
Ostatnio zmodyfikowano 2013-01-30 20:31
| damian302 Temat założony przez niniejszego użytkownika | [c++] stryktura w strukturze + funkcje [ROZWIĄZANY] » 2013-01-30 17:19:57 Witam. Mam taki oto kod, który napisałem: #include <conio.h>#include <iostream>
 using namespace std;
 
 struct tData
 { int dzien;
 int miesiac;
 int rok;
 };
 
 struct tOsoba
 { char nazwisko[ 20 ];
 char imie[ 15 ];
 tData dataUrodzenia;
 };
 
 void dane( tOsoba & rekord ) {
 cout << "Podaj nazwisko: ";
 cin >> rekord.nazwisko;
 cout << "Podaj imie: ";
 cin >> rekord.imie;
 };
 
 void dd( tData & date ) {
 cout << "Podaj dzien: ";
 cin >> date.dzien;
 cout << "Podja miesiac: ";
 cin >> date.miesiac;
 cout << "Podaj rok: ";
 cin >> date.rok;
 }
 void wyswietl( tOsoba rekord ) {
 cout << "Imie: " << rekord.imie << endl;
 cout << "Nazwisko: " << rekord.nazwisko << endl;
 cout << "Data: " << rekord.dataUrodzenia.dzien << "/" << rekord.dataUrodzenia.miesiac << "/" << rekord.dataUrodzenia.rok << endl;
 };
 int main() {
 tOsoba nowy;
 dane( nowy );
 dd( nowy.dataUrodzenia );
 wyswietl( nowy );
 getch();
 return( 0 );
 }
Mój problem, że linijka która jest oznaczona 1 mam być wewnątrz funkcji "dane", tyle tylko, że jak ją wkleję tak jak jest teraz to nie działa. Walczę z tym już 2 dzień i nie mam już pomysłów. Proszę o pomoc  | 
|  | 
| unimator | » 2013-01-30 18:10:57 void dane( tOsoba & rekord ) {cout << "Podaj nazwisko: ";
 cin >> rekord.nazwisko;
 cout << "Podaj imie: ";
 cin >> rekord.imie;
 dd( rekord.dataUrodzenia );
 };
 
 | 
|  | 
| crash | » 2013-01-30 18:14:16 #include <conio.h>#include <iostream>
 using namespace std;
 
 struct tData
 { int dzien;
 int miesiac;
 int rok;
 };
 
 struct tOsoba
 { char nazwisko[ 20 ];
 char imie[ 15 ];
 tData dataUrodzenia;
 };
 
 void dd( tData & date );
 
 void dane( tOsoba & rekord ) {
 cout << "Podaj nazwisko: ";
 cin >> rekord.nazwisko;
 cout << "Podaj imie: ";
 cin >> rekord.imie;
 
 dd( rekord.dataUrodzenia );
 };
 
 void dd( tData & date ) {
 cout << "Podaj dzien: ";
 cin >> date.dzien;
 cout << "Podja miesiac: ";
 cin >> date.miesiac;
 cout << "Podaj rok: ";
 cin >> date.rok;
 }
 void wyswietl( tOsoba rekord ) {
 cout << "Imie: " << rekord.imie << endl;
 cout << "Nazwisko: " << rekord.nazwisko << endl;
 cout << "Data: " << rekord.dataUrodzenia.dzien << "/" << rekord.dataUrodzenia.miesiac << "/" << rekord.dataUrodzenia.rok << endl;
 };
 int main() {
 tOsoba nowy;
 dane( nowy );
 
 wyswietl( nowy );
 getch();
 return( 0 );
 }
 
Poczytaj o deklaracji i definicji funkcji. Dwa, taka mała sugestia, skoro używasz iostream, a to jest C++, to zamiast char[]/char* lepiej bo wygodniej jest używać std::string.  W funkcji dane chcesz użyć funkcji, która jest zdefiniowana poniżej jej, dlatego trzeba kompilator uprzedzić, że taka funkcja (dd) wystąpi gdzieś później w kodzie | 
|  | 
| damian302 Temat założony przez niniejszego użytkownika | » 2013-01-30 20:31:22 Dzięki @crash za pomoc. Zapomniałem o tej kolejności i to było przyczyną. O deklaracjach już się naczytałem ale nie zwróciłem uwagi na tą kolejność. Char użyłem tu w przykładzie. W programie, gdzie jest podobny fragment wykorzystany używam string'ów.  | 
|  | 
| « 1 » |