Problem z plikiem binarnym.
Ostatnio zmodyfikowano 2011-03-25 16:30
MrOsamaful Temat założony przez niniejszego użytkownika |
Problem z plikiem binarnym. » 2011-03-24 23:04:05 Cześć, możecie powiedzieć czemu to nie działa?
bool magicCheck( byte input[] ) { if( input[ 0 ] == 0x4D && input[ 1 ] == 0x44 ) return 1; else return 0; }
if( magicCheck( input ) ) { cout << "Found!"; }
Pomimo tego, że 1 i 2 bajt jest 0x4d i 0x44 to ich nie znajduje, wiecie co jest nie tak?
Tutaj cały source code, jak by to nie wystarczyło.
#include <iostream> #include <fstream> #include <iomanip> using namespace std;
typedef char byte;
byte * input;
int getSize( fstream & file ) { int begin, end; begin = file.tellg(); file.seekg( 0, ios::end ); end = file.tellg(); return( end - begin ); } bool magicCheck( byte * input ) { if( input[ 0 ] == 0x4D && input[ 1 ] == 0x44 ) return 1; else return 0; } int main() { char nazwapliku[ 64 ]; cin.getline( nazwapliku, 64 ); fstream file( nazwapliku, ios::binary | ios::in | ios::out ); if( file.is_open() ) { cout << "size is: " << getSize( file ) << " bytes.\n"; input = new byte[ getSize( file ) ]; file.read(( char * ) input, getSize( file ) ); file.close(); if( magicCheck( input ) ) { cout << "Found!"; } else { cout << "Unsigned file!"; } } else { cerr << "Couldn't, open the input file!" << endl; } cin.getline( nazwapliku, 1 ); return 0; }
|
|
ison |
» 2011-03-24 23:25:16 w funkcji getSize dopisz przed returnem file.seekg( 0, ios::beg );
|
|
MrOsamaful Temat założony przez niniejszego użytkownika |
» 2011-03-24 23:29:45 Nic to praktycznie nie dało. Wcześniej zawsze pokazywało, że nie znaleziono, a teraz zawsze, że znaleziono, nawet jak poda się złe bajty :/ |
|
ison |
» 2011-03-24 23:32:36 to zmień kompilator, u mnie działa perfekcyjnie ;) (program sprawdza czy pierwsze 2 bajty to MD) aaa.txt MD
output: size is: 2 bytes. Found!
aaa.txt a MD
output: size is: 5 bytes. Unsigned file!
|
|
MrOsamaful Temat założony przez niniejszego użytkownika |
» 2011-03-25 16:30:38 Jednak działa. Dzięki wielkie. |
|
« 1 » |