[C++] Return, kilka zmiennych
Ostatnio zmodyfikowano 2016-08-25 11:36
TenTyp Temat założony przez niniejszego użytkownika |
[C++] Return, kilka zmiennych » 2016-08-23 00:13:52 Witam otóż nie mogę znaleźć w internecie (wszak google) informacji na temat zwrócenia kilku zmiennych z funkcji nieokreślonych przy użyciu słowa kluczowego Return: void znajdz_item_script( string nazwa_item ) { ifstream item_czyty; item_czyty.open( "item/script_item.txt", ios::in ); char znak; string tekst = ""; while( !item_czyty.eof() ) { znak = item_czyty.get(); if( znak != '|' ) { tekst += znak; } else { if( tekst == nazwa_item ) { string nazwa, rodzaj, parametry, opis, wartosc; nazwa = tekst; tekst = ""; int ktore = 0; while( znak == '\n' ) { znak = item_czyty.get(); if( znak == '|' ) { if( ktore == 0 ) { rodzaj = tekst; } else if( ktore == 1 ) { parametry = tekst; } else if( ktore == 2 ) { opis = tekst; } else if( ktore == 3 ) { wartosc = tekst; return nazwa, rodzaj, parametry, opis, wartosc; break; break; } tekst = ""; ktore += 1; } else { tekst += znak; } } } else { while( znak == '\n' ) { znak = item_czyty.get(); } } } } }
|
|
pekfos |
» 2016-08-23 00:34:52 Najbliższe tego, co chcesz osiągnąć, jest zwracanie std::tuple<>. |
|
michal11 |
» 2016-08-23 00:53:54 Ponieważ w tym przypadku zmienne mają jakieś swoje logiczne nazwy, lepsze byłoby opakowanie tego co w strukturę lub klasę. |
|
TenTyp Temat założony przez niniejszego użytkownika |
» 2016-08-23 01:01:38 to "tuple" jest niezłe :-) chciałem obejść się bez tworzenia nowej zmiennej ale ta w sumie nie jest taka zła zaoszczędzę dzięki niej około 40 linii :-)
jakby ktoś miał jeszcze inny sposób tj. przerzucenie zmiennych z funkcji do funkcji w takowy sposób (a'la return) to proszę o info. :-) |
|
Gibas11 |
» 2016-08-23 14:45:25 Najlepiej strukturą (tuple jest bliżej, ale mało czytelny – zwłaszcza dla początkujących). struct Item { std::string nazwa; std::string rodzaj; std::string parametr; std::string opis; std::string wartosc; };
Item jakasFunkcja() { return { "banan", "bananowy", "-omit-frame-banana", "piękny banan", "$60" }; }
Używając nawiasów klamrowych możesz stworzyć strukturę ustawiając wartości kolejnych pól. Oczywiście kompilator musi wiedzieć o jaką strukturę chodzi, w tym wypadku dedukuje to na podstawie typu zwracanego przez funkcję. |
|
TenTyp Temat założony przez niniejszego użytkownika |
» 2016-08-25 11:36:39 Gibas11 Jesteś Wielki !! |
|
« 1 » |