xrtwo Temat założony przez niniejszego użytkownika |
Wczytywanie pliku raz jeszcze. » 2011-03-31 21:27:44 Otóż mam fragment kodu: int main() { cout.precision( 4 ); double liczba1, liczba2, liczba3, liczba4; fstream plik; char nazwa[ 20 ]; vector < double > wektor; cout << "Podaj nazwe pliku: "; cin >> nazwa; plik.open( nazwa, ios::in ); if( plik.is_open() == false ) { cerr << "Nie mozna otworzyc pliku." << endl; return 1; } cout << "Plik otwarty." << endl; while( plik.good() ) { char znak; plik >> liczba1 >> znak; plik >> liczba2 >> znak; plik >> liczba3 >> znak; plik >> liczba4 >> znak; string linia; getline( plik, linia ); wektor.push_back( liczba3 ); }
Z tym, że teraz chciałbym dac uzytkownikowi mozliwosc wyboru kolumny wektor.push_back( liczba3 ); . Sczerze mowiac rozwiazalem to przez switch ale do kazdego case'a musialem wrzucac cala ta petle. Probowalem tez przekazac plik do funkcji ale w programie bylo wtedy mnostwo bledow. Jakies porady? |
|
McAffey |
» 2011-03-31 21:59:32 Zaznaczam, że nie wgłębiałem się za bardzo w twój problem, więc nie wiem jakie jest najlepsze rozwiązanie, chcę tylko skomentować zdanie : rozwiazalem to przez switch ale do kazdego case'a musialem wrzucac cala ta petle. |
Lepiej wrzucić tą pętlę do funkcji i tylko ją wywoływać. |
|
malan |
» 2011-03-31 22:01:29 Dodawaj to, co użytkownik wybierze. Np. xxx poda jeden, to dodaj liczba1 , xxx poda trzy to dodaj liczba3 . Wiesz, jakby się uprzeć, to da się to zrobić w jednej linijce (ale by trzeba wprowadzić małą modyfikację w kodzie). |
|
xrtwo Temat założony przez niniejszego użytkownika |
» 2011-03-31 22:10:12 Hmm nie wiem czy sie rozumiemy. Ogolnie wstawianie do wektora konkretnej kolumy odbywa sie w petli, wektor jest typu double wiec moze byc tylko liczba. Pytajac uzytkownika przed wejsciem do petli o wybor kolumny, moge do jego wyboru np 1 przypisac liczba1 tylko ze liczba 1 nie bedzie miala wartosci z pliku poniewaz samo wczytywanie do pliku odbywa sie w petli. |
|
malan |
» 2011-03-31 22:13:11 A, czy ja mówiłem coś o wczytywaniu? ;p To zostaw w spokoju... Zastanów się nad pięcioliterowym wyrazem (na literę 'd'), w drugim zdaniu, w moim ostatnim poście. |
|
xrtwo Temat założony przez niniejszego użytkownika |
» 2011-03-31 22:25:45 Albo to ja nie rozumiem Twojego rozwiazania (juz jestem troche zmeczony) albo to Ty nie rozumiesz programu ;p Nie rozumiem gdzie ma to dodawac? Przeciez w petli odbywa sie dodawanie na koniec wektora wszystkich wartosci z kolumny nr 3 wektor.pushback(liczba3) moze byc ich 5 a moze ich byc 500. Uzytkownik ma byc tylko raz zapytany o to z ktorej kolumny maja byc wczytane dane, dla jasnosci przykladowy plik: 5.1, 3.5, 1.4, 0.2, honda 4.9, 3.0, 1.4, 0.2, honda 6.4, 3.2, 4.5, 1.5, mazda 6.9, 3.1, 4.9, 1.5, mazda 6.2, 3.4, 5.4, 2.3, nissan 5.9, 3.0, 5.1, 1.8, nissan
|
|
malan |
» 2011-03-31 22:38:55 Eh... ;p ZapytajUzytkownikaKtoraKolumneWczytac;
OtwórzPlik; DopókiWPlikuSąDane { WczytajDane; JeżeliUzytkownikWybralPierwszaKolumneToDodajDoWketoraPierwszaKolumne ... JeżeliUzytkownikWybralCzwartaKolumneToDodajDoWketoraCzwartaKolumne } Prawie jak gotowiec ;p |
|
xrtwo Temat założony przez niniejszego użytkownika |
» 2011-03-31 22:47:14 Dziala oczywiscie... Dziekuje. |
|
« 1 » 2 |