Witam,
Pisząc program, który miał mi przypominać o wcześniej zapisanych wydarzeniach napotkałem taki problem:
Po użyciu funkcji AllocConsole() [windows.h] nie działają mi operacje związane z wejściem i wyjściem. (tzn. cout,cin,)
Oto kod:
#include <iostream>
#include<fstream>
#include "wydarzenia.h"
#include<windows.h>
#include<ctime>
#include<string>
#include<sstream>
#include<cstring>
#include<cstdio>
using namespace std;
string nazwa;
string data;
string godzina;
void sprawdz();
int main()
{
FreeConsole();
sprawdz();
while(true){
if(GetAsyncKeyState(VK_LCONTROL)==-32767)
{
AllocConsole(); //od tego miejsca program nie działa
cout<<"Nazwa: ";
getline(cin,nazwa);
cout<<"Data: ";
cin>>data;
cout<<"Godzina: ";
cin>>godzina;
wydarzenie w1(nazwa,data,godzina);
cout<<"Dodano Wydarzenie!";
Sleep(3000);
FreeConsole();
}}
return 0;
}
void sprawdz()
{
int dzien,mies,rok;
time_t now =time(0);
tm *ltm=localtime(&now);
dzien=ltm->tm_mday;
mies=ltm->tm_mon+1;
rok=ltm->tm_year+1900;
ostringstream ss;
if(dzien<10){ss<<"0"<<dzien<<".";}
else {ss<<dzien<<".";}
if(mies<10){ss<<"0"<<mies<<".";}
else{ss<<mies<<".";}
ss<<rok;
string data=ss.str();
fstream plik;
plik.open("log.txt",ios::in);
string linia,dataz;
while(getline(plik,linia))
{
dataz=linia.substr(0,10);
cout<<data<<" "<<dataz<<endl;
if(strcmp(data.c_str(), dataz.c_str())==0){MessageBox( NULL, linia.c_str(), "Przypomnienie", MB_ICONINFORMATION | MB_OKCANCEL );}
}
}
Pliku .h nie dołączam,bo nie w nim tkwi problem
Na innych forach znalazłem rozwiązanie z freeopen(), ale w moim przypadku to nie działa.
Z góry dziękuję za pomoc.