Przekazywanie tablicy string do funkcji
Ostatnio zmodyfikowano 2021-06-16 14:40
oldman |
» 2021-06-16 14:40:48 Wydawało się, że to łatwe zadanie, ale okazało się dla mnie pouczające. Na początku robiłem tak jak kolega, który założył ten wątek, czyli w funkcjach wczytajOsobe i wypiszOsobe jako argumenty zadeklarowałem tablice, a potem w main() nie wstawiałem tablic, tylko stringi i inta - jak chciał autor zadania. Powodowało to błędy, które zgłaszał kompilator, a ja nie wiedziałem o co chodzi. YooSy mnie oświecił :) - dzięki! Tak to zrobiłem: #include <iostream> #include <string> #include <limits> void wczytajOsobe( std::string & imie, std::string & nazwisko, int & wiek ) { bool wiekOK; std::cout << "imie: "; std::cin >> imie; std::cout << "nazwisko: "; std::cin >> nazwisko; do { std::cout << "wiek: "; std::cin >> wiek; if( std::cin.fail() ) { std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); wiekOK = false; } else wiekOK = true; } while( !wiekOK ); }
void wypiszOsobe( std::string imie, std::string nazwisko, int wiek ) { std::cout << imie << " " << nazwisko << " " << wiek << std::endl; }
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; }
|
|
1 « 2 » |