The_Structor Opublikowano 9 Stycznia 2005 Zgłoś Opublikowano 9 Stycznia 2005 Chcialbym napisac taki program: uzytkownik podaje liczby, ktore zapisywane sa do pliku nastepnie z tego pliku sa odczytywane i zapisywane do tablicy... Napisalem program, ktory zapisuje wartosci do pliku i odczytuje je, ale nie wiem jak to zrobic z tablica, zeby dodatkowo miala taki sam rozmiar jak ilosc elementow w pliku, czy moglby mi ktos pomoc, bo nie moge nigdzie znalezc odpowiedzi :/ jeszcze tak dla lepszego zrozumienia: podaje liczby, np: 3,4,5,6,7,8 program zpaisuje je do pliku o wybranej przeze mnie nazwie (np. 1.txt) nastepnie program tworzy tablice o rozmiarze takim jak ilosc elementow (w tym wypadku 6) i zapisuje w niej liczby z pliku (np. 1.txt), czyli tab[0]=3, etc... z gory dzieki za pomoc i poswiecony czas, bo sie mecze z tym :/ ale mysle ze to sie przyda nie tylko mi chodzi o jak najlatwieszy sposob, tak zebym mogl to spokojnie zrozumiec i wykorzystac w swoich programach :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
piotrek_zet Opublikowano 9 Stycznia 2005 Zgłoś Opublikowano 9 Stycznia 2005 Bardzo latwe, moze niezbyt optymalne ale wydaje mi sie ze wystarczy, przelatujesz plik raz, zliczasz ilosc liczb, powiedzmy liczac ile jest przecinkow + 1 i pozniej tworzysz tablice i przelatujesz jeszcze raz po pliku, choc pewnie zaraz sie okaze ze nie do konca Cie zrozumialem ;) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
marcinEc Opublikowano 9 Stycznia 2005 Zgłoś Opublikowano 9 Stycznia 2005 Chcialbym napisac taki program: uzytkownik podaje liczby, ktore zapisywane sa do pliku nastepnie z tego pliku sa odczytywane i zapisywane do tablicy... Napisalem program, ktory zapisuje wartosci do pliku i odczytuje je, ale nie wiem jak to zrobic z tablica, zeby dodatkowo miala taki sam rozmiar jak ilosc elementow w pliku, czy moglby mi ktos pomoc, bo nie moge nigdzie znalezc odpowiedzi :/ Zapis: - zapisujesz rozmiar tablicy (tu dajesz spację albo '\n') - zapisujesz wszystkie liczby z tablicy (rozdzielone przecinkiem albo spacją). i tyle :) Czyli, dla tablicy {1,2,3,4} dostaniesz: "4 1 2 3 4" Odczyt: - wczytujesz pierwszą liczbę: rozmiar tablicy - alokujesz pamięć na tablicę (rozmiar już masz) - wczytujesz po kolei liczby i wpisujesz do tablicy. Ponieważ wiesz ile liczb masz wczytać (znasz rozmiar tablicy) od razu możesz wyłapać błąd w pliku danych (np. za mało liczb) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Nargil Opublikowano 9 Stycznia 2005 Zgłoś Opublikowano 9 Stycznia 2005 skoro to moze byc c++ a nie czyste C to: include <vector.h> vector <int> tablica; odczytujesz kolejne liczby i robisz: tablica.push_back(liczba); Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
The_Structor Opublikowano 9 Stycznia 2005 Zgłoś Opublikowano 9 Stycznia 2005 a moglby ktos napisac jakis przyklad ? O_o Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Nargil Opublikowano 9 Stycznia 2005 Zgłoś Opublikowano 9 Stycznia 2005 a moglby ktos napisac jakis przyklad ? O_o 1209578[/snapback] #include <vector>#include <fstream>#include <iostream>#include <stdlib.h>using namespace std;int main(){ char znak[]=" "; vector <int> tab; ifstream plik("plik.txt"); string liczba; while ( plik.good() ) { znak[0]=plik.get(); if(znak[0]!=' ') { liczba.insert(liczba.size(),znak); } else { tab.push_back(atoi(liczba.c_str())); liczba.erase(); } } tab.push_back(atoi(liczba.c_str())); for(int i=0; i<tab.size(); ++i) { cout << tab[i] <<endl; } system("pause"); return 0;} mam nadzieje ze pomoglem :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
The_Structor Opublikowano 9 Stycznia 2005 Zgłoś Opublikowano 9 Stycznia 2005 dzieki ;) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...