|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2005
Città: Pagani(SA)
Messaggi: 1270
|
[c++]fwrite, perke scrive in binario e non in ascii ?
come da titolo, faccio un semplice fwrite:
Codice:
FILE *fp ; int x = 100 ; fp = fopen ( "output.txt" , "w" ) ; fwrite ( &x , sizeof ( int ) , 1 , fp ) ; fclose ( fp ) ; ![]()
__________________
ThermalTake Armor VA8000BWS - Gigabyte GA-965P-DQ6 - Intel C2D e6600@3600 - GEIL 2X1GB 800CS4 + Corsair 2X2GB 800CS5 - XFX GTS250 512MB - Enermax Liberty 500 - Pioneer 112D - Scythe Infinity - 2x320GB Barracuda 7200.10 + 1x500GB WD SE - Logitech MX1000 - Logitech G15 - Samsung 226BW - Dell 2408WFP XBOXLIVE: Deadsinns - Concluso positivamente: sm_morgan, alecxx-mi, geniusexpress, Goldenboy81, roby9793 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Non scrive né binario né ascii, scrive semplicemente il numero di byte che specifichi.
Non ha una sfera di cristallo per sapere che stai scrivendo un "int" invece che - ad es. - un "float" ![]()
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2005
Città: Pagani(SA)
Messaggi: 1270
|
capito. Come faccio a scrivere un file in ascii ?
![]()
__________________
ThermalTake Armor VA8000BWS - Gigabyte GA-965P-DQ6 - Intel C2D e6600@3600 - GEIL 2X1GB 800CS4 + Corsair 2X2GB 800CS5 - XFX GTS250 512MB - Enermax Liberty 500 - Pioneer 112D - Scythe Infinity - 2x320GB Barracuda 7200.10 + 1x500GB WD SE - Logitech MX1000 - Logitech G15 - Samsung 226BW - Dell 2408WFP XBOXLIVE: Deadsinns - Concluso positivamente: sm_morgan, alecxx-mi, geniusexpress, Goldenboy81, roby9793 |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Qualcosa tipo:
char buf[16]; sprintf(buf, "%d", x); fwrite(buf, strlen(buf), 1, fp); In c++ credo che puoi usare gli stream per semplificarti il lavoro ed evitare buffer temporanei. Esistono anche simili soluzioni in c (ad es. la dprintf dei sistemi GNU), ma non sono standard.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Allora potresti usare direttamente fprintf
![]() |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
![]()
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: May 2003
Città: Trieste, Pordenone
Messaggi: 920
|
In alternativa:
Codice:
#include <iostream.h> #include <fstream.h> #include <iomanip.h> #include <stdlib.h> int main() { ofstream fp; int x = 100; char buffer[(sizeof(int)*8+1)]; fp.open("output.txt", ios::out); fp<<"Binario:"<<itoa(x, buffer, 2)<<endl; fp<<"Decimale:"<<itoa(x, buffer, 10)<<endl; fp<<"Esadecimale:"<<itoa(x, buffer, 16)<<endl; fp.close(); return 0; }
__________________
buy here |
![]() |
![]() |
![]() |
#8 |
Member
Iscritto dal: Apr 2004
Messaggi: 130
|
Oppure:
Codice:
#include <iostream> #include <iomanip> #include <bitset> int main(void) { int x = 100; std::cout << x << std::endl; std::cout << std::hex << x << std::endl; std::cout << std::bitset<8>(x) << std::endl; } |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Lo vedo meglio senza buffer
![]() Codice:
fp<<"Binario:"<<itoa(x, buffer, 2)<<endl; fp<<"Decimale:"<<itoa(x, buffer, 10)<<endl; fp<<"Esadecimale:"<<itoa(x, buffer, 16)<<endl; ![]() cout << "Base 8: " << setw(10) << setbase(ios::oct) << x << endl; cout << "Base 16: " << setw(10) << setbase(ios::hex) << x << endl; cout << "Base 10: " << setw(10) << setbase(ios::dec) << x << endl; |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Mi vado a studiare quel bitset che non l'ho mai usato
![]() ![]() |
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
![]()
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:52.