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

[Lekcja 26]

Ostatnio zmodyfikowano 2013-05-19 13:23
Autor Wiadomość
Astaroth
Temat założony przez niniejszego użytkownika
[Lekcja 26]
» 2013-05-16 15:47:22
Jak przekazać tablicę typu string do funkcji ? W zadaniu mamy taki zapis.
C/C++
for( int i = 0; i < 2; i++ )
     wczytajOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] );
 Próbowałem coś pokombinować, ale mi nie wychodzi.
void wyczyajOsobe( std::string *& imie, std::string *& nazwisko, int *& wiek )
Więc proszę o poradę jak przekazać tą tablice do funkcji.
P-83064
pekfos
» 2013-05-16 15:59:47
Nie wychodzi, czyli co?
P-83066
Nerevar
» 2013-05-16 16:23:37
Przekombinowałeś. Skąd ci się wzięło takie cudo "&*"? wystarczy napisać: std::string* nazwa

edit:
W twoim przypadku
void wyczyajOsobe( std::string * imie, std::string * nazwisko, int * wiek )
Będzie to funkcja, która jako argumenty przyjmuje 3 tablice(wskaźniki).
Jednak sądząc po tym co napisałeś wcześniej:
C/C++
for( int i = 0; i < 2; i++ )
     wczytajOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] );
Podejrzewam, że wcale nie chcesz przekazywać do tej funkcji tablic. W tym wypadku np. imie oznacza i-ty element tablicy imie(więc prawdopodobnie jest to strnig a nie tablica stringów). Ehh, wybacz wzięło mnie na głębsze tłumaczenie, a teraz wydaje mi się to trochę pokrętne, ale mam nadzieję, że mimo wszystko jest to w miarę zrozumiałe i pomocne :).
P-83069
Berux
» 2013-05-16 16:40:03
lub std::string nazwa[]
P-83075
Astaroth
Temat założony przez niniejszego użytkownika
» 2013-05-16 16:40:42
Wyskakuje mi że 'wczytajOsobe' was not declared in this scope| więc coś pochrzaniłem ze składnią coś, a kombinując to w pewnym momencie próbowałem użyć referencji z stąd &, chociaż w sumie, to było bez sensu.
P-83076
Berux
» 2013-05-16 16:42:14
Pokaż cały kod.
P-83077
pekfos
» 2013-05-16 16:50:00
wyczyajOsobe
 to nie
wczytajOsobe
.
P-83080
Astaroth
Temat założony przez niniejszego użytkownika
» 2013-05-16 16:51:37
Ok doszedłem do wniosku ,że nie deklaruje tego i z wywołania, ale jak to zrobić?


C/C++
#include <iostream>
#include <string>
void wczytajOsobe( std::string * imie, std::string * nazwisko, int * wiek )
{
    for( int indeks = 0; indeks < 3; indeks++ )
    {
        std::cout << "Imie :";
        std::cin >> imie[ indeks ];
        std::cout << "Nazwisko :";
        std::cin >> nazwisko[ indeks ];
        std::cout << "Wiek :";
        std::cin >> wiek[ indeks ];
    }
   
   
}
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;
}
po naprawieniu nazwy
:basic_string<char>}' to 'std::string* {aka std::basic_string<char>*}' for argument '1' to 'void wczytajOsobe(std::string*, std::string*, int*)'|
P-83084
« 1 » 2
  Strona 1 z 2 Następna strona