[C++, funkcje, tablica] error: expected initializer before '&' token 
Ostatnio zmodyfikowano 2013-01-12 22:58
kanam99 Temat założony przez niniejszego użytkownika  | 
[C++, funkcje, tablica] error: expected initializer before '&' token  » 2013-01-12 21:30:51 Witam. Z góry przepraszam za chaotyczny temat, ale nie miałem pomysłu jak go inaczej zformułować. Mam taki kod: #include <iostream> #include <string>
  void wczytajOsobe( std::string & imie[ i ], std::string & nazwisko[ i ], int & wiek[ i ] ) {     std::cout << "Podaj imie:";     std::cin >> imie[ i ];     if( std::cin.fail() == true )     {         std::cin.clear();         std::cin.sync();         do         {             std::cout << "Zle! Chce litery!";             std::cin >> imie[ i ];             std::cin.clear();             std::cin.sync();         } while( std::cin.fail() == true );              }     std::cout << "Dobrze:)";          std::cout << "Podaj nazwisko:";     std::cin >> nazwisko[ i ];     if( std::cin.fail() == true )     {         std::cin.clear();         std::cin.sync();         do         {             std::cout << "Zle! Chce litery!";             std::cin >> nazwisko[ i ];             std::cin.clear();             std::cin.sync();         } while( std::cin.fail() == true );              }     std::cout << "Dobrze :)";          std::cout << "Podaj wiek:";     std::cin >> wiek[ i ];     if( std::cin.fail() == true )     {         std::cin.clear();         std::cin.sync();         do         {             std::cout << "Zle! Chce liczby!";             std::cin >> wiek[ i ];             std::cin.clear();             std::cin.sync();         } while( std::cin.fail() == true );              }     std::cout << "Dobrze :)"; }
  void wypiszOsobe( std::string imie[ i ], std::string nazwisko[ i ], int wiek[ i ] ) {     std::cout << "Imie:" << imie[ i ] << "Nazwisko:" << nazwisko[ i ] << "Wiek:" << wiek[ i ] << 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; } W funkcji głównej w miejscu  for( int i = 0; i < 2; i++ )      wczytajOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] ); i for( int i = 0; i < 2; i++ )      wypiszOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] ); mamy czwartą zmienną "i". Moje pytanie brzmi: jak przekazać tą zmienną do funkcji "wczytajOsobe" i "wypiszOsobe". I dlaczego log wywala mi błąd w czwartej linijce (nagłówek "wczytajOsobe")o treści: expected initializer before '&' token  oraz  expected ')' before ',' token  Przy okazji: czy dobrze napisałem obie funkcje? Jest to zadanie domowe z lekcji  Wczytywanie tekstu - standardowy strumień wejścia. Z góry dziękuję i pozdrawiam.  | 
 | 
Savail  | 
» 2013-01-12 22:48:20 te "i" w definicjach twoich funkcji jest niepotrzebne. Wykasuj je a zostaw tylko przy wywoływaniu, chociaż nie wiem czy było twoją intencją przekazywanie tablicy do funkcji z coraz wyższym indeksem i. Nie chce mi się analizować całego kodu więc jak coś by jeszcze szwankowało to tu może być też błąd : P  | 
 | 
DejaVu  | 
» 2013-01-12 22:48:22 void wczytajOsobe( std::string & imie[ i ], std::string & nazwisko[ i ], int & wiek[ i ] )
  zamień na: void wczytajOsobe( std::string & imie, std::string & nazwisko, int & wiek )
  Analogiczne zmiany wprowadź w drugiej funkcji. Zastanów się dlaczego ta linijka ma tak wyglądać, a jeżeli nie znajdziesz odpowiedzi to przeczytaj jeszcze raz rozdział:  Przekazywanie argumentów funkcji przez referencję.  | 
 | 
kanam99 Temat założony przez niniejszego użytkownika  | 
» 2013-01-12 22:58:17 Dziękuję za pomoc. Program już działa. Zamykam :)  | 
 | 
|  « 1 »  |