Hoe maak je een tekstbestand te maken met behulp van C ++

Hoe maak je een tekstbestand te maken met behulp van C ++


Creëren tekstbestanden in C ++ programmacode is essentieel voor vele toepassingen. Mogelijk moet u handige functies in uw C ++ programma, zoals het opslaan van instellingen om een ​​initialisatie bestand, het schrijven van data naar een door komma's gescheiden tekstbestand, of het omzetten van een binair formaat naar tekst op te bouwen. Bestand input / output (\ "i / o \") wordt behandeld met behulp van \ de ++ Standard Library C "fstream \" class. Met behulp van fstream is vergelijkbaar met het gebruik van de \ "iostream \" standaard i / o klasse bent u waarschijnlijk bekend met het gebruik van. Inderdaad, beide zijn afgeleid van dezelfde ouder klasse.

instructies

1 Voeg de volgende regels toe aan de \ "omvat \" van de header-bestand voor de klasse die het tekstbestand zal schrijven:

omvatten <fstream> onder <iostream>

using namespace std
GAAN

\ "Fstream \" is het bestand i / o beek klasse. \ "Iostream \" is de standaard I / O-klasse, die wordt gebruikt om berichten naar het scherm te schrijven. \ "Met behulp van namespace std \" kunt u deze twee Standard Library klassen gebruiken zonder de vervelende \ "std :: \" prefix op de cursisten.

2 Verklaar een variabele van het type \ "ofstream \" (output file stream) in je klas 'private-lid variabele deel (of in de functie die het tekstbestand schrijft):

ofstream fileout;

3 Open het bestand, het passeren van het pad en de bestandsnaam als parameter, in je klas 'constructor (of de functie die het tekstbestand schrijft):

fileout.open (\ "/ tmp / output.txt \")
GAAN

De standaardmodus van \ 'open \ "is een tekstbestand stroom te openen. Als u het pad weglaat, wordt het bestand geschreven in uw huidige werkmap. Als het bestand niet bestaat, zal het worden aangemaakt. Als dat zo is, zal het overschreven. De modus kan worden ingesteld als een optionele parameter om \ "geopend. \". Bijvoorbeeld, de volgende oproep opent een bestand in de huidige werkmap, en voegt aan het in plaats van overschrijven:

fileout.open (\ "output.txt \", fstream :: app);

4 Start een if-blok in de functie die schrijft in het tekstbestand. Het is belangrijk om te controleren of het bestand werd geopend. Gebruik fstream '\ "is_open \" functie voor de controle:

if (fileout.is_open ()) {

De open zal mislukken als je geen toestemming schrijven moet u de map of de schijf vol of beschadigd.

5 Schrijf naar het bestand met fstream's << \ "te maken aan \" operator na de \ "als. \" Bijvoorbeeld, het volgende schrijft een regel tekst, gevolgd door de waarde toegekend aan de variabele \ "een. \"

fileout &lt;&lt; \&quot;This is a text file.\\n\&quot;

GAAN

fileout &lt;&lt; a &lt;&lt; \&quot;\\n\&quot; ;

6 Beëindig de \ "als \" en voeg een \ "else \" om een ​​foutmelding af te drukken als het bestand openen mislukt:

}
else {

cout &lt;&lt; \&quot;Error: Unable to open output file\&quot;

GAAN
}

7 Sluit het bestand wanneer u klaar bent met het schrijven naar het. Als u het bestand in een functie geopend, sluit het voor het verlaten van die functie. Als u het bestand in de klasse constructor geopend, sluit u het bestand in de destructor. Controleer zeker het bestand is geopend voordat je probeert om te sluiten te maken:

if (fileout.is_open ()) {

fileout.close()

GAAN
}

Hints

  • Tekstbestand streams kan worden geformatteerd, net als iostream output, met behulp van de iomanip (I / O manipulators) klasse. Raadpleeg de \ "manipulatoren \" pagina gelinkt in de sectie middelen voor een lijst van stroom manipulatoren die u kunt gebruiken voor het opmaken van getallen, stelt rechtvaardiging en trim witruimte.