PDA

Visualizza la versione completa : [C++] Output binario su file


kirakira93
17-03-2010, 20:17
Ciao ragazzi, sto facendo una prova sulla memorizzazione di file di tipo immagine.
Vorrei una funzione che mi permetta di memorizzare in un file i byte in questo modo.
es il valore RGB del pixel 1.1 è 255 255 255, allora stampa su il file i primi 3 byte assegnando il valore di 255 (in base esagesimale ff)
quindi analizzando i primi 3 byte risulta ff ff ff.

Ovviamente se si apre con il notepad un file del genere risulta qualcosa di illeggibile, in questo caso del pixel 1.1 il notepad legge questo: ˙˙˙
spero di essere stato chiaro, se non avete capito guardate qualche screenshot dell'utility XVI32 e vi schiarirete le idee.

Ciao e grazie in anticipo :love: :love: :love:

oregon
17-03-2010, 20:24
http://www.codersource.net/c/c-tutorial-on-file-operations/c-file-i-o-binary-files-using-fstream.aspx

kirakira93
17-03-2010, 20:49
Scusa l'ignoranza ma non sono riuscito a far funzionare il codice, eccolo.



#include <cstdlib>
#include <iostream>

using namespace std;

struct WebSites
{
char SiteName[100];
int Rank;
};

int main(int argc, char *argv[])
{

WebSites p_Data;
fstream binary_file("c:\\Binary.txt",ios::binary|ios::in);
binary_file.read(reinterpret_cast<char *>(&p_Data),sizeof(WebSites));
binary_file.close();

cout<<p_Data.SiteName<<endl;
cout<<"Rank :"<< p_Data.Rank<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}


output del compilatore (dev-c++ 4.9.9.2)

C:\Users\Niko\Desktop\Dev-c++\main.cpp In function `int main(int, char**)':

16 C:\Users\Niko\Desktop\Dev-c++\main.cpp variable `std::fstream binary_file' has initializer but incomplete type

C:\Users\Niko\Desktop\Dev-c++\Makefile.win [Build Error] [main.o] Error 1

Help.....

antotan
17-03-2010, 21:27
dev-c++ non è un compilatore.
Per quanto riguarda l'errore, includi anche fstream

:ciauz:

kirakira93
17-03-2010, 22:20
ok grazie domani proverò:D

kirakira93
18-03-2010, 16:25
Due notizie
la buona: il codice viene compilato senza errori
la cattiva: il codice non mi stampa un output binario (es. 01010010 01110010 etc.....)
come posso fare?

oregon
18-03-2010, 17:10
Un output binario? E quando hai detto che vuoi un output binario? E che senso ha nel file?

kirakira93
18-03-2010, 17:26
Allora... vorrei vedere un output binario del contenuto del file e invece scrivere nel file direttamente nei byte...

oregon
18-03-2010, 18:18
Guarda ... secondo me fai un po' di confusione ...

Confondi il "sistema di numerazione binario" con il "formato binario" dei caratteri salvati su file.

Tu hai mostrato una immagine di un editor esadecimale ... se devi salvare su disco dei "byte" non in ASCII ma in binario, ti ho già detto come fare ...

kirakira93
18-03-2010, 20:34
Allora.... mi potresti fare un esmpio di codice: vorrei che con il mio programma io veda nei primi 3 byte i valori 19 f3 a4 ok?

Loading