09. februar 2004 - 05:50Der er
14 kommentarer og 1 løsning
Sende en tekst streng til en text fil.
Jeg har en MFC application (i visual c++), den har en exit msgbox osv, jeg har sat og rodet med at få den til at skrive en linie i en text fil når den lukker.
det vil bare IKKE virke uanset hvad jeg gør (jeg er nok en smule noobie til det her)
Anyways, koden til exit er her
void CLineageUpdaterDlg::OnClose() { int nResult;
nResult = MessageBox("Are you sure you want to exit?", "Quit?", MB_YESNO | MB_ICONQUESTION); if (nResult == IDYES) EndDialog(0); }
okay, når man så klikker på YES, så lukker den programmet, men hvordan får jeg den til at skrive en linie i en fil der hedder logdata.txt, den skulle gerne skrive f.eks
"Update Server Closed."
Jeg har rooodet rundt med alle de excempler andre har fået her, men intet syntes at virke. (den kommer nu ikke med errors sådan rigtig, men den skriver bare intet i filen).
så nu spørger jeg de kloge hoveder, nogen der ved det ?
havde 5 fejl med ios::append istedet for ios::app (ifølge microsofts msdn).
ios::app The function performs a seek to the end of file. When new bytes are written to the file, they are always appended to the end, even if the position is moved with the ostream::seekp function.
mjo, virker nok fint i en console app, men mm, ikke i en MFC app..
jeg skal declare den i class først for ellers får du en f class blablabla not declared blabla.. jeg kan jo ikke køre den some int main() da den skal kun køre en gang når man lukker programmet så den skriver "program lukket" en gang i log filen.
jeg zipper lige det hele så kan du jo selv se det.
tjeck under "Lineage UpdaterDlg.h" omkring i toppen og under "Lineage UpdaterDlg.cpp" helt i bunden af filen (det er det der sker når man klikker på Exit knappen.
Sorry - jeg fik aldrig email om linket (Ekspertens email har været lidt ustabil på det sidste).
Efter at have kigget 30 sekunder på koden vil jeg ihvertfakd sige at:
void CLineageUpdaterDlg::OnClose() { int nResult;
nResult = MessageBox("Are you sure you want to exit?", "Quit?", MB_YESNO | MB_ICONQUESTION); if (nResult == IDYES)
ofstream f("logfile.txt", ios::out | ios::app); f << "Dette er en test" << endl; f.close();
EndDialog(0); }
må mangle nogen parenteser.
Prøv:
void CLineageUpdaterDlg::OnClose() { int nResult;
nResult = MessageBox("Are you sure you want to exit?", "Quit?", MB_YESNO | MB_ICONQUESTION); if (nResult == IDYES) { ofstream f("logfile.txt", ios::out | ios::app); f << "Dette er en test" << endl; f.close(); } EndDialog(0); }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.