MrOsamaful Temat założony przez niniejszego użytkownika |
Program się wywala przy binary write » 2011-03-26 20:53:43 Pomóżcie. Nie jestem zbyt dobre w pracy z plikami binarnymi dlatego, jak napotkałem ten problem to za chiny nie mogę sobie z nim sam poradzić...
input:
PUSHDW
#include <iostream> #include <fstream> #include <iomanip> #include <cstring> #include <vector> #include <string> using namespace std;
const char opcodes[] = { 0x1, 0x2, 0x3, 0x4 }; char * text; vector < char *> lines; int pos = 0; int getSize( ifstream & myfile ) { int begin, end; begin = myfile.tellg(); myfile.seekg( 0, ios::end ); end = myfile.tellg(); myfile.seekg( 0, ios::beg ); return( end - begin ); }
int main() { char plikWejsciowy[ 256 ]; char plikWyjsciowy[ 256 ]; char * tmpLine; cout << "Podaj nazwe pliku wejsciowego: "; cin >> plikWejsciowy; cout << "Podaj nazwe pliku wyjsciowego: "; cin >> plikWyjsciowy; ifstream input; input.open( plikWejsciowy ); int size = getSize( input ); text = new char[ size ]; input.read( text, size ); cout << size << endl; cout << text << endl; tmpLine = strtok( text, " \n" ); while( tmpLine != NULL ) { printf( "%s\n", tmpLine ); lines.push_back( tmpLine ); tmpLine = strtok( NULL, " \n" ); } cout << endl << "Plik wczytany" << endl; ofstream output; output.open( plikWyjsciowy, ios::binary ); for( int i = 0; i < size; i++ ) { if( !strcmp( "PUSHDW", lines[ i ] ) ) { cout << "Znaleziono PUSHDW na linii: " << i << endl; output.write(( const char * ) opcodes[ 2 ], 1 ); } } return 0; }
|
|
malan |
» 2011-03-26 21:31:27 W ogóle nie sprawdzasz, czy plik został poprawnie otwarty. |
|
MrOsamaful Temat założony przez niniejszego użytkownika |
» 2011-03-26 21:55:18 Ale plik wejściowy czy wyjściowy? |
|
malan |
» 2011-03-26 22:00:46 Oba. |
|
MrOsamaful Temat założony przez niniejszego użytkownika |
» 2011-03-26 22:10:55 Wejsciowy jest dobry na 100%, do wyjściowego nic nie wpisuj ale go tworzy. |
|
malan |
» 2011-03-26 23:03:04 Nie rozumiesz chyba. std::ifstream input( plikWejsciowy ); if( input.fail() ) return 1;
std::ofstream output( plikWyjsciowy, ios::binary ); if( output.fail() ) return 1; To mam na myśli. |
|
MrOsamaful Temat założony przez niniejszego użytkownika |
» 2011-03-27 00:13:38 Wiem co masz na myśli? Tylko jak to ma się do mojego problemu? Wiem w czym jest błąd tylko nie wiem jak go rozwiązać. Bez problemu wczytuje plik do pamięci tylko potem nie może go zapisać. |
|
malan |
» 2011-03-27 00:41:59 Może spróbuj zamienić: const char opcodes[] = { 0x1, 0x2, 0x3, 0x4 };
...na: const char opcodes[] = { '1', '2', '3', '4' );
/edit (by malan): Nie wiem, o czym myślałem jak pisałem tego posta...... |
|
« 1 » 2 |