Multilotek - prawdopodobienstwo
Ostatnio zmodyfikowano 2008-12-19 13:36
jimmye Temat założony przez niniejszego użytkownika |
Multilotek - prawdopodobienstwo » 2008-12-17 11:33:06 Ostatnio znalazlem baze losowań multilotka z paru lat, chcial bym zrobic taki program, ze odczytuje wyniki z pliku z ostatniego miesiaca i podaje najczesciej losowane liczby lub liczbe od 1 do 80, ktorej nie wylosowano, czy cos takiego jest mozliwe, uzywajac biblioteki fstream? |
|
pekfos |
» 2008-12-17 15:35:04 ogólnie mówiąc, wszystko jest możliwe. wystarczy wiedzieć jak. ja bym zrobił to tak: utworzył dynamiczną tablicę vector, wczytał do niej wyniki losowań i utworzył pętle z serią warunków sprawdzających po kolei liczby. #include <fstream> #include <string> #include <vector> using namespace std; int main() { fstream plik; int bufor; vector < int > tablica; plik.open( "twoj_plik.txt", ios::in ); while( !plik.eof() ) { getline( plik, bufor ); tablica.push_back( bufor ); tablica.resize( tablica.size() + 1 ); } ten program pobiera dane z pliku i zapisuje do vecora sądze że wiesz jak zrobić resztę :) (przepraszam za ewentualne błędy w kodzie) |
|
DejaVu |
» 2008-12-17 15:41:08 Tak na moje oko to będą błędy kompilacji. Tablica jest vector<int>, a z pliku wczytujesz łańcuchy znaków (wiersze), które następnie chcesz wrzucić do vector'a. Idea jednak jest dobra do wczytania danych. |
|
pekfos |
» 2008-12-17 16:01:36 wystarczy zmienić typ zmiennej bufora z int na string i skorzystać z takiego cudu techniki jakim jest konwersja rodzaju danych #include <string> #include <sstream> #include <iostream>
int konwertuj( const std::string & tekst ) { std::stringstream zmienna; zmienna << tekst; int wynik; zmienna >> wynik; return wynik; }
|
|
jimmye Temat założony przez niniejszego użytkownika |
» 2008-12-19 07:43:09 No napewno mi to pomoze ;] tylko zapomnialem jak sie wczytuje dane od pewnej pozycji, np. od 5 linijki lub wiersza.
|
|
lynx |
» 2008-12-19 13:36:41 http://kursy.ddt.pl/?LessonId=110 powinno Ci się przydać, szczególnie akapit 23.7 . Jednak tu powstaje problem, bo nie zawsze wiemy ile wcześniejsze linijki mają znaków. Do tego celu możesz sobie użyć getline() piersze 4 linijki wczytać do zmiennej 'śmieci', a resztę do vectora. Mógłbyś też napisać sobie funkcję wczytującą pierwsze znaki, a gdy napotka enter to dodaje do określonej zmiennej. Gdy zmienna będzie się równać 4 to będzie znaczyć, że jesteś przy 5 linijce. :) |
|
« 1 » |