Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wczytywanie dat i godzin z pliku

Ostatnio zmodyfikowano 2014-06-18 20:48
Autor Wiadomość
canna
Temat założony przez niniejszego użytkownika
Wczytywanie dat i godzin z pliku
» 2014-06-18 00:42:24
Piszę program, który wczyta dane z pliku o strukturze np.:
16.06.2014 08:45 16:45
i dalej będzie sobie obliczał statystki pracy.
Problem w tym, że jakoś nie wychodzi mi wczytywanie odczytanych linii do zmiennych.
Standardowo szukałem odpowiedzi w kursie i na forum. Najbliżej tematu był wątek: http://cpp0x.pl/forum/temat/​?id=2370

Jak próbuję przez getline(plik, wiersz), a potem
C/C++
int dzien = wiersz.substr( 0, 2 );
...
wywala mi error: cannot convert... string to int.
Myślałem o wykorzystaniu biblioteki ctime.h, ale jakoś z kursu nie załapałem jaki typ zmiennej użyć do tego, aby złapać datę i godzinę.

Zatem, jak to zrobić, by mieć te dane z linijki pliku i móc na nich prowadzić obliczenia?


P-112209
Monika90
» 2014-06-18 06:34:23
int dzien = wiersz.substr( 0, 2 );

wywala mi error: cannot convert... string to int.
substr zwraca string a nie int, można string konwertować na int za pomocą stoi.

Ale można też tak (co jest chyba prostsze)
C/C++
char dot, colon;
int year, month, day;
int hour1, min1, hour2, min2;

file >> day >> dot >> month >> dot >> year
>> hour1 >> colon >> min1
>> hour2 >> colon >> min2;

if( file && dot == '.' && colon == ':' )
cout << "OK: " << year << ',' << month << ',' << day
<< ',' << hour1 << ',' << min1
<< ',' << hour2 << ',' << min2
     << '\n';
else
     cout << "Error\n";

P-112212
canna
Temat założony przez niniejszego użytkownika
Genialnie proste
» 2014-06-18 20:48:01
Dzięki Monika,
Pewnie, gdybym wiedział, że można kropkę i dwukropek tak wyciągnąć, to nie zastanawiałbym się nad ctime.h
Twój sposób jest dla mnie bardzo czytelny i co ważniejsze niezależny od metody zapisu danych i bibliotek kompilatora.
Dalej już sobie poradzę, liczyć umiem ;-)
Pozdrowionka
P-112248
« 1 »
  Strona 1 z 1