/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Forskel mellem ios::out og binær
Fra : Flare


Dato : 28-04-03 19:42

Hvad er den helt konkrete forskel på disse to linier?

ofstream myFile ("filnavn.my3", ios::out | ios::binary)
ofstream myFile ("filnavn.my3", ios::out)

Men jeg har brug for at vide den "tekniske" baggrund, eller i hvert fald
bare forskellen.

Mvh
Anders



 
 
Mogens Hansen (28-04-2003)
Kommentar
Fra : Mogens Hansen


Dato : 28-04-03 21:33


"Flare" <anders@pings.dk> wrote
> Hvad er den helt konkrete forskel på disse to linier?
>
> ofstream myFile ("filnavn.my3", ios::out | ios::binary)
> ofstream myFile ("filnavn.my3", ios::out)
>
> Men jeg har brug for at vide den "tekniske" baggrund, eller i hvert fald
> bare forskellen.

Det er et spørgsmål om hvordan linieskift håndteres.

På nogle systemer som MS-DOS, OS/2 (og MS-Windows ?) er en ny linie angivet
ved 2 tegn (CR og LF: "\r\n") i filer.
I normal text mode (ios::binary ikke sat) erstattes '\n' med "\r\n" når det
skrives til en fil og modsat når det læses igen.
I binary mode (ios::binary sat) sker denne konvertering ikke.

Venlig hilsen

Mogens Hansen



Flare (28-04-2003)
Kommentar
Fra : Flare


Dato : 28-04-03 22:38

> På nogle systemer som MS-DOS, OS/2 (og MS-Windows ?) er en ny linie
angivet
> ved 2 tegn (CR og LF: "\r\n") i filer.
> I normal text mode (ios::binary ikke sat) erstattes '\n' med "\r\n" når
det
> skrives til en fil og modsat når det læses igen.
> I binary mode (ios::binary sat) sker denne konvertering ikke.

Det var lige DET jeg havde brug for. Fik nogle mystiske resultater. Takker
herfra.

Anders



Igor V. Rafienko (29-04-2003)
Kommentar
Fra : Igor V. Rafienko


Dato : 29-04-03 12:50

[ Mogens Hansen ]

[ ... ]

> > Hvad er den helt konkrete forskel på disse to linier?
> >
> > ofstream myFile ("filnavn.my3", ios::out | ios::binary)
> > ofstream myFile ("filnavn.my3", ios::out)

[ ... ]

> Det er et spørgsmål om hvordan linieskift håndteres.


Ikke helt. Det er _også_ et spørsmål om hvordan linjeskift håndteres,
men ordlyden er vel noe i retning av at ios::binary slår av alle
konverteringer mellom de faktiske bytene ut på filen og den interne
representasjonen, ikke bare linjeskift.

Vel å merke, ios::binary påvirker ikke oppførselen til op<<()/op>>().
Dvs. de gjør fortsatt "_formatted_ input/output". Det er read/write
med venner som man bruker for å bearbeide dataene på bytenivå.

(Kommentaren og advarselen er tatt fra
<URL:http://www.langer.camelot.de/iostreams.htm>).





ivr
--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?

Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408193
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste