Krash vid skrivning till fil (C++)

Permalänk
Medlem

Krash vid skrivning till fil (C++)

#ifndef FileIO_Included #define FileIO_Included #include <iostream> #include <stdlib.h> #include <fstream> using namespace std; class FileIO{ public: FileIO(){} void readLine(char* file, char* data){ cout << "Open file " << file << endl; ifstream toread(file); cout << "File opened\n"; if(toread.good()){ toread.getline(data,sizeof(data)); cout << "Data read\n"; } } void writefile(char* file, char* data){ cout << "Write to file: " << file << endl; ofstream towhrite("Link.txt"); cout << "File opened\n"; towhrite << data; towhrite.close(); cout << "Data written\n"; } }; #endif

När jag använder denna kodsnutt så krashar programmet när den når blocket då filen öppnas, och en

try{ fileio.writefile("Link.txt",url); }catch (exception& ex){ cerr << "exception caught: " << ex.what() << endl; }

kastar tyvärr ingen output.
Kompileringen sker med MinGW.

Någon som ser något fel som jag har missat?

Edit: Det var en strcpy som spökade. Denna hade visserligen endast winsock att göra men ledde till krachen senare. Tack Code::blocks för er fina debugger! <3

Problemet löst via debugging läge i Code::blocks
Visa signatur

[i]Those who don't understand UNIX are condemned to reinvent it, poorly. – Henry Spencer [/i]
[i]“Programmers are in a race with the Universe to create bigger and better idiot-proof programs,
while the Universe is trying to create bigger and better idiots.
So far the Universe is winning.”
[/i]

Permalänk
Medlem

Kan det kanske ha att göra med vad du skriver till filen? Har programmet de rättigheter som krävs?

Permalänk
Medlem

Hmm... om inte katalogen existerar där du vill skriva så brukar den krascha för min del. Testa ta med hela sökvägen.
Annars, är 'url' en pekare av typ char* ? Och är den isåfall terminerad med NULL ( \0 om jag inte minns fel).
Sedan brukar jag typecasta, så din rad
ofstream towhrite("Link.txt");
blir
ofstream towhrite((char*)"Link.txt");

Annars kan du ju bara använda write() istället för <<
http://www.cplusplus.com/reference/iostream/ostream/write/

Permalänk
Medlem

Var ska Link.txt skapas? Jag misstänker att det beror på begränsade rättigheter på mappen, även om du borde få något vettigt från det exception som slängs...

Visa signatur

5950X, 3090

Permalänk
Medlem
Skrivet av backfeed:

Var ska Link.txt skapas? Jag misstänker att det beror på begränsade rättigheter på mappen, även om du borde få något vettigt från det exception som slängs...

Jag prövade att kompilera och köra programmet på Linux och det fungerade utan problem, så det är uppenbarligen något problem med rättigheterna i Windows.
Jag gav usern "Everyone" alla rättigheter och kör programmet som admin men problemet kvarstår.

Någon som har något förslag?

Visa signatur

[i]Those who don't understand UNIX are condemned to reinvent it, poorly. – Henry Spencer [/i]
[i]“Programmers are in a race with the Universe to create bigger and better idiot-proof programs,
while the Universe is trying to create bigger and better idiots.
So far the Universe is winning.”
[/i]

Permalänk
Medlem

Det var en strcpy som spökade. Denna hade visserligen endast winsock att göra men ledde till krachen senare. Tack Code::blocks för er fina debugger! <3
Tråden satt som [LÖST].

Visa signatur

[i]Those who don't understand UNIX are condemned to reinvent it, poorly. – Henry Spencer [/i]
[i]“Programmers are in a race with the Universe to create bigger and better idiot-proof programs,
while the Universe is trying to create bigger and better idiots.
So far the Universe is winning.”
[/i]