Wczytywanie tekstu - standardowy strumień wejścia
Ostatnio zmodyfikowano 2017-06-30 15:05
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; }
|
|
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. |
|
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. |
|
maly7 |
» 2017-06-30 15:05:55 Fragment 1.: 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... |
|
« 1 » |