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

Wczytywanie tekstu - standardowy strumień wejścia

Ostatnio zmodyfikowano 2017-06-30 15:05
Autor Wiadomość
mitreandir
Temat założony przez niniejszego użytkownika
Wczytywanie tekstu - standardowy strumień wejścia
» 2017-06-29 14:55:41
Witam, próbuję rozpracować zadanie domowe z lekcji 26 http://cpp0x.pl/kursy/Kurs-C++/Poziom-3/Wczytywanie-tekstu-standardowy-strumien-wejscia/351
Jednak wyrzuca mi błąd, nie za bardzo wiem, co jest nie tak w kodzie, nie jest on jeszcze zabezpieczony, na początku zakładam, że wprowadzę od razu prawidłowe dane.
oto kod:




#include <iostream>
#include <string>

using namespace std;

void wczytajOsobe( string im[], string naz[], int wiek[])
{
    int i=0;
    cin>>wiek;
    cin.sync();
    getline(cin, naz);
    cin.sync();
    getline(cin, im);
    cin.sync();
    i++;
}
void wypiszOsobe( string im[], string naz[], int wiek[])
{ int i=0;
    cout<<im<<endl;
    cout<<naz<<endl;
    cout<<wiek<<endl;
    i++;

}

int main()
{
    string imie[ 2 ];
    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-162934
maly7
» 2017-06-29 14:59:35
void wypiszOsobe( string im[], string naz[], int wiek[] )

Zdecyduj się czy na pewno chcesz tutaj jako argumenty tablice.

Dodatkowo po co ci zmienna i w funkcjach? Jeśli chcesz zmienić element spoza funkcji jako argumenty musisz przekazać referencję lub wskaźnik.
P-162935
mitreandir
Temat założony przez niniejszego użytkownika
» 2017-06-30 14:30:02
i jest mi po to, żeby za każdym razem był od razu licznik, który jest zerem w momencie wywołania, funkcji, a poza tym jak umieścić tablice do funkcji, nie ustawiając ich jako argument?
Bo program wyrzuca mi tu błąd rodzaju zmiennych w funkcjach, gdy je wywołuje.
P-162959
maly7
» 2017-06-30 15:05:55
Fragment 1.:
C/C++
void wypiszOsobe( string im[], string naz[], int wiek[] )
{ int i = 0;
    cout << im << endl;
    cout << naz << endl;
    cout << wiek << endl;
    i++;
   
}
Fragment 2.:
wczytajOsobe( imie[ i ], nazwisko[ i ], wiek[ i ] );

Zrozum co ty tutaj robisz, we fragmencie 2 do funkcji nie przekazujesz tablicy tylko konkretne elementy.
We fragmencie 1. jako argumenty masz tablice, ale później próbujesz użyć je jako zwykłe elementy (jakby to były tablice to musiało by być np. im[0]).
Również we fragmencie 1. na początku inicjalizujesz zmienną i = 0, na końcu funkcji ją inkrementujesz i zaraz wychodzisz z funkcji, więc zmienna nie jest w żaden sposób wykorzystywana... Zmienna 'i' istnieje tylko w funkcji.

Jeśli nie zrozumiałeś (nie umiem dobrze tłumaczyć :D) wróć do początkowych lekcji, tablice, funkcje itp...
P-162960
« 1 »
  Strona 1 z 1