Arbetslägen för filer.

En fils arbetsläge (mode) beskriver hur den är tänkt att användas: läsning, skrivning, utökning från slutet osv. När du associerar en ström med en fil, kan du ange ett andra argument som styr filens arbetsläge.

 

ifstream fin("c:/minFil", ios_base::in);

 

öppnar filen för läsning

 

ifstream fin("c:/minFil", ios_base::out);

 

öppnar filen för skrivning

 

Konstanter för filarbetslägen

 

ios_base::in             öppna för läsning

ios_base::out             öppna för skrivning

ios_base::ate             leta upp filslut när filen öppnas

ios_base::app             Lägga till data vid filslut

ios_base::trunc           truncera filen om den existerar

ios_base::binary          binärfil

 

Om du använder Bloodshed Dev C++ måste du kanske använda detta skrivsätt I stället:

ios::in 

ios::out

ios::ate

ios::app

ios::trunc

ios::binary

 

Metoden open () I klassen ifstream använder förstås ios_base::in som default.

Metoden open() i klassen ofstream använder  ios_base::out | ios_base::trunc

Detta läge ios_base::trunc  innebär alltså att en fil trunkeras, d.v.s tidigare innehåll raderas, när den öppnas.

Det är ju inte alltid så roligt.

Därför finns andra möjligheter ios_base::app gör så att data läggs till i slutet av filen och det tidigare innehållet bevaras.

 

Konstanterna kan också kombineras. Detta görs med operatorn | (pipe):

ios_base::in | ios_base::out      

ios_base::out| ios_base::app

ios_base::in | ios_base::out| ios_base::trunc

 

O.S.V.