Wczytywanie z pliku - jak porównać te daty?

0

Hej wszystkim!

Muszę stworzyć program na zaliczenie, chciałabym prosić was o pomoc.
Nie zrobiłam zbyt wiele, ale chciałabym żebyście mi powiedzieli jak mogę w łatwy sposób wczytać dane z pliku tekstowego, a następnie porównać je(nie chce wczytywać całego pliku jedynie jego fragment)
plik wygląda mniej wiecej tak

1 Swiatowy dzien Mleka
2 Dzien bez krawata
3 Dzien Dobrej Oceny
4 Dzien Drukarza
5 Dzien Ochrony Srodowiska
6 Swiatowy Dzien Pocalunku
7 Dzien Chemika
8 Dzien Informatyka
9 Dzien Przyjaciela
10 MiedzyNarodowy dzien elektryka
12 Swiatowy Dzien sprzeciwu wobec pracy

Chodzi mi oto, by porównywało pierwszą linijkę ze zmienną gdzie mam datę - jeśli są identyczne to ma zabrać drugą linijkę i przypisać do jakiejś zmiennej(tu nie mam pomysłu), ma tak robić dla dnia dzisiejszego i całego tygodnia.

Przykład:
Dzisiaj mamy 4 czerwca, czyli dzien drukarza, jutro będzie dzien ochrony środowiska. Inne święta w tym tygodniu: Swiatowy Dzien Pocalunku, Dzien Chemika, Dzien Informatyka, Dzien Przyjaciela, Miedzynarodowy dzien elektryka.

Jak to zaimplementować?

Co mam:

 
#include <iostream>
#include <windows.h>
#include <fstream>

using namespace std;

void Data(int dzien, int miesiac)
{
	switch(miesiac)
{
	case 1: cout<<"Dzis jest "<<dzien<<" stycznia "<<endl; break;
	case 2: cout<<"Dzis jest "<<dzien<<" lutego "<<endl; break;
	case 3: cout<<"Dzis jest "<<dzien<<" marca "<<endl; break;
	case 4: cout<<"Dzis jest "<<dzien<<" kwietnia "<<endl; break;
	case 5: cout<<"Dzis jest "<<dzien<<" maja "<<endl; break;
	case 6: cout<<"Dzis jest "<<dzien<<" czerwca "<<endl; break;
	case 7: cout<<"Dzis jest "<<dzien<<" lipca "<<endl; break;
	case 8: cout<<"Dzis jest "<<dzien<<" sierpnia "<<endl; break;
	case 9: cout<<"Dzis jest "<<dzien<<" wrzesnia "<<endl; break;
	case 10: cout<<"Dzis jest "<<dzien<<" pazdziernika "<<endl; break;
	case 11: cout<<"Dzis jest "<<dzien<<" listopada "<<endl; break;
	case 12: cout<<"Dzis jest "<<dzien<<" grudnia "<<endl; break; 
	}
	
}



int main() {
SYSTEMTIME st;
GetLocalTime(&st);	
int dzien = st.wDay;
int miesiac = st.wMonth;

cout<<"Witaj w aplikacji: Kalendarz Swiat Nietypowych :) !"<<endl;

   Data(dzien,miesiac);
   
 
   
	system("pause");
	return 0;
}

Ogólnie chcę zrobić to dla miesiąca czerwca(na razie), jak będę wiedziała jak zrobić to dla jednego to zrobię analogicznie dla innych.

Pozdrawiam,
Z góry dziękuję za pomoc :)

0

Może zacznij od zmiany formatu pliku na:

1.06 Swiatowy dzien Mleka
2.06 Dzien bez krawata
3.06 Dzien Dobrej Oceny

W kodzie:

ifstream fin("swieta.txt");
unsigned fDay,fMonth;
const char *MonthNames[]={"stycznia","lutego",...};
char point;
string holiday;
while(getline(fin>>ws>>fday>>point>>fmonth>>ws,holiday)) if((fDay==st.wDay)&&(fMonth==st.wMonth)) cout<<"Dzis jest "<<dzien<<" "<<MonthNames[st.wMonth-1]<<" "<<holiday<<endl;
0

a jak wyciągnąć następne daty?

0

Już są wyciągnięte.

0

To co dostałam od Ciebie wyświetla mi święta dzisiejszego dnia, a jak na przykład pokazać co jutro będzie ? :)

0
SYSTEMTIME st;
FILETIME ft;
ULARGE_INTEGER tm;
SystemTimeToFileTime(&st,&ft);
memcpy(&tm,&ft,sizeof(tm));
tm+=24*60*60*10000000;
memcpy(&ft,&tm,sizeof(ft));
SYSTEMTIME jutro;
FileTimeToSystemTime(&ft,&jutro);

Albo lepiej zacznij używać naturalnych dla C typów operujących datami.

1 użytkowników online, w tym zalogowanych: 0, gości: 1