Hej
Jeg har lavet en kode der skulle åbne en fil, checke om den er ok, læse alle linier til eof og så ellers lukke den igen.
Koden er en kopi af:
http://www.cplusplus.com/reference/iostream/ios/exceptions.htmlJeg får failbit, og hvis jeg fjerner den fra file.exceptions, så får jeg oefbit.
Jeg startede med at teste det, på en ret stor fil, men nu har jeg lavet opcodes.txt om til en fil på to linier med tekst og en tom linie i bunden. Jeg har gemt den som standard notepad dokument, så den er vel i ANSI format.
Håber i har et bud
Mvh
Carsten
PS: er der ikke en måde at få mere information fra den kastede exception?
Her er min kode: (filstien er: c:\\\\opcodes.txt ikke i min kode. ikke c:\\opcodes.txt som det fremgår i nedenstående
void OpcodeList::setOpcodeList(string dataFile)
{
//intialize
string data = dataFile;
ifstream file;
// Throw exceptions whenever "failbit" or "badbit" gets set
file.exceptions (ifstream::eofbit | ifstream::failbit | ifstream::badbit);
try
{
//Open opcodes list
file.open("C:\\\\opcodes.txt");
//get all data while not eof
while (!file.eof())
{
file.get();
}
}
catch (ifstream::failure e)
{
cout << "error: " << e.what() << endl;
}
file.close();
}
Indlæg senest redigeret d. 27.10.2007 13:41 af Bruger #12570