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

Przekazywanie tablicy string do funkcji

Ostatnio zmodyfikowano 2021-06-16 14:40
Autor Wiadomość
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:
C/C++
#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;
}
P-178784
1 « 2 »
Poprzednia strona Strona 2 z 2