[C++] Funkcja wczytująca imię, nazwisko i wiek
Ostatnio zmodyfikowano 2013-12-30 21:06
Kozzi Temat założony przez niniejszego użytkownika |
[C++] Funkcja wczytująca imię, nazwisko i wiek » 2013-12-30 12:07:33 Witam. Zadanie w kursie polegało na napisaniu programu, który wczyta imię, nazwisko i wiek dwóch osób. Otrzymuję następujący błąd: error: invalid initialization of reference of type 'std::string (&)[2] {aka std::basic_string<char> (&)[2]}' from expression of type 'std::string {aka std::basic_string<char>}'| oraz error: in passing argument 1 of 'void wczytajOsobe(std::string (&)[2], std::string (&)[2], int (&)[2])'| podczas gdy kod źródłowy mojego programu prezentuje się następująco: #include <iostream> #include <string>
using namespace std; void wczytajOsobe( string( & imie )[ 2 ], string( & nazwisko )[ 2 ], int( & wiek )[ 2 ] ) { for( int i = 0; i < 2; i++ ) { cin >> imie[ i ]; cin >> nazwisko[ i ]; cin >> wiek[ i ]; } } void wypiszOsobe( string( & imie )[ 2 ], string( & nazwisko )[ 2 ], int( & wiek )[ 2 ] ) { for( int i = 0; i < 2; i++ ) { cout << imie[ i ]; cout << nazwisko[ i ]; cout << wiek[ i ]; } } int main() { std::string imie[ 2 ]; std::string nazwisko[ 2 ]; int wiek[ 2 ]; for( int i = 0; i < 2; i++ ) wczytajOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] ); for( int i = 0; i < 2; i++ ) wypiszOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] ); return 0; }
|
|
pekfos |
» 2013-12-30 12:57:30 |
|
Kozzi Temat założony przez niniejszego użytkownika |
» 2013-12-30 13:35:07 Przeczytałem uważnie cały temat, ale nie znalazłem rozwiązania do mojego problemu.:( |
|
leon_w |
» 2013-12-30 14:59:40 Poczytaj o tablicach i przekazywaniu ich do funkcji. |
|
Kozzi Temat założony przez niniejszego użytkownika |
» 2013-12-30 20:09:23 Zmieniłem kod na taki: void wczytajOsobe( string( imie )[ 2 ], string( nazwisko )[ 2 ], int( wiek )[ 2 ] ) { for( int i = 0; i < 2; i++ ) { cin >> imie[ i ]; cin >> nazwisko[ i ]; cin >> wiek[ i ]; } } void wypiszOsobe( string( imie )[ 2 ], string( nazwisko )[ 2 ], int( wiek )[ 2 ] ) ale otrzymuję błąd: error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_string<char>*}' for argument '1' to 'void wczytajOsobe(std::string*, std::string*, int*)'| |
|
leon_w |
» 2013-12-30 20:29:48 Przekazywanie tablic jednowymiarowych do funkcjiDo funkcji nie da się przesłać całej tablicy. Wysyłamy tylko jak by adres początku tej tablicy. Dlatego nie tak: wczytajOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] );
|
tylko wczytajOsobe( imie, nazwisko, wiek ); [ cpp ] ew.jako dodatkowy argument przesy ł amy rozmiar tej tablicy. |
|
Kozzi Temat założony przez niniejszego użytkownika |
» 2013-12-30 21:06:03 Boże słodki, co ja namodziłem. Dzięki.:) |
|
« 1 » |