Mam do was pytanie. Nie chce gotowego kodu chce tylko odpowiedzi czy to jest możliwe do zrobienia i jaki jest tego sens. Znalazłem takie zadanie na cpp0x
(Mam nadzieję że link mogę wrzucić? http://cpp0x.pl/kursy/Kurs-C++/Poziom-3/Wczytywanie-tekstu-standardowy-strumien-wejscia/351)
Treść daję poniżej link dałem dla tych którzy chcą sprawdzić:
Napisz prosty program, który wczyta imię, nazwisko i wiek dwóch osób. Funkcja główna programu ma mieć następującą postać:
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;
}
I teraz tak na funkcji tego nie zrobie no bo funkcja nie może zwracać dwóch różnych typów danych z tego co wiem więc poszukałem i znalazłem informację o krotkach tworząc coś takiego.
#include <iostream>
#include <tuple>
using namespace std;
tuple <string, string, int> wczytaj()
{
string im;
string naz;
int wi;
cin>>im>>naz>>wi;
return tuple<string, string, int>(im,naz,wi);
}
void wypisz(string im, string naz, int wi)
{
cout<<im<<endl;
cout<<naz<<endl;
cout<<wi<<endl;
}
auto dane=wczytaj();
int main()
{
string imie[2];
string nazwisko[2];
int wiek[2];
for(int i=0; i<2; i++)
{
dane=wczytaj();
imie[i]=get<0>(dane);
nazwisko[i]=get<1>(dane);
wiek[i]=get<2>(dane);
}
for(int i=0; i<2; i++)
{
wypisz(imie[i],nazwisko[i],wiek[i]);
}
return 0;
}
Oczywiście działą błędnie (Jeżeli mogę prosić to prosiłbym o pomoc dlaczego bo nie mam pojęcia... Wywołuje mi wczytaj() 3 razy tylko nie wiem dlaczego...)