Zapis do pliku oraz odczyt z niego na funkcjach
Ostatnio zmodyfikowano 2016-12-11 23:42
Mashnar Temat założony przez niniejszego użytkownika |
Zapis do pliku oraz odczyt z niego na funkcjach » 2016-12-11 22:00:09 Zacząłem pisać taki programik , który będzie odczytywał zapisywał z klawiatury jakieś dane z pliku i wyświetlał na ekranie ( liczby zmiennoprzecinkowe) Bez funkcji mi działał, ale jak wsadziłem ( narazie tylko wyswietlanie i odczyt z pliku) do funkcji, to coś nie działa Wstawiam kod. #include <iostream> #include <cstdlib> #include<cstdio> #include<fstream> using namespace std; void wczytaj_z_pliku( char nazwa_plik[], float tablica[], int ilosc ) { fstream plik; plik.open( nazwa_plik, ios::in ); if( plik.good() == true ) { for( int i = 0; i < ilosc; i++ ) plik >> tablica[ i ]; plik.close(); } } void wyswietl( float tablica[], int ilosc ) { for( int i = 0; i < ilosc; i++ ) { cout << tablica[ i ] << endl; } }
int main() { int ilosc; char z; float * wsk_t; int n; wsk_t = new float[ n ]; char n_plik[ 20 ]; cout << "Ile danych wczytac" << endl; cin >> n; cout << "podaj nazwe pliku" << endl; cin >> n_plik; do { cout << "Co chcesz zrobic?" << endl; cout << "1: Wczytaj z pliku" << endl; cout << "2: Wczytaj z klawiatury" << endl; cout << "3: Wyswietl" << endl; cout << "4: Zapisz do pliku" << endl; cout << "5: Koniec" << endl; cin >> z; switch( z ) { case 1: wczytaj_z_pliku( n_plik, wsk_t, n ); wyswietl( wsk_t, n ); break; case 2: break; case 3: break; case 4: break; } } while( z != 5 ); }
|
|
Szustarol |
» 2016-12-11 22:27:41 funkcje pracują na kopiach zmiennych to już powinno Ci objaśnić sytuację :)
|
|
Mashnar Temat założony przez niniejszego użytkownika |
» 2016-12-11 23:06:02 w sensie że chodzi o float tablica w deklaracji funkcji?
Zmieniłem na inne i nadal to samo..
Tak samo ta pętla do while coś zle działa , chociaż jak dla mnie powinno być ok.. Ale co ja tam sie znam, początki. |
|
michal11 |
» 2016-12-11 23:16:17 Pokaż fragment pliku. float * wsk_t; int n; wsk_t = new float[ n ];
zastanów się co tu robisz i jaką wartość ma n w momencie alokacji tablicy. |
|
Mashnar Temat założony przez niniejszego użytkownika |
» 2016-12-11 23:19:07 https://gyazo.com/349f2d4276d64ecf3582a91cf2b2cb5c
to jest cały ten plik
Hmm..no tutaj ma być liczba tych elementów które podaje pozniej...wyzerować trzeba na początku? |
|
michal11 |
» 2016-12-11 23:38:04 Jeżeli wyzerujesz to stworzysz tablice która ma zero elementów.
Zamień typ z z char na int, twój case 1 w switch w ogóle nie wchodził ( ponieważ kod cyfry 1 jest inny od 1 ). Pamiętaj żeby wpisywać nazwę pliku z rozszerzeniem. |
|
Mashnar Temat założony przez niniejszego użytkownika |
» 2016-12-11 23:42:32 Dziwne..zawsze robiłem w casie z charem i jezdziło ale jak zmieniłem na int to jest ok :P Dziękuje, nie zamykam bo może jeszcze bede potrzebował pomocy
No tak..przecież char to są znaki a nie liczby... głupi bład. |
|
« 1 » |