C Files I / O: maak, open, lees, schrijf en sluit een bestand

C Bestandsbeheer

Een bestand kan worden gebruikt om een grote hoeveelheid permanente gegevens op te slaan. Net als veel andere talen biedt “C” de volgende bestandsbeheerfuncties:

  1. Aanmaken van een bestand
  2. Een bestand openen
  3. Een bestand lezen
  4. Schrijven naar een bestand
  5. Een bestand sluiten

Hieronder volgen de belangrijkste bestandsbeheerfuncties die beschikbaar zijn in “C”,

functie doel
fopen () Een bestand creëren of een bestaand bestand openen
fclose () Een bestand sluiten
fprintf () Een gegevensblok naar een bestand schrijven
fscanf () Een gegevens uit een bestand blokkeren
getc () Leest een enkel teken uit een bestand
putc () Schrijft een enkel teken naar een bestand
getw () Leest een geheel getal uit een bestand
putw () Een geheel getal naar een bestand schrijven
fseek () Stelt de positie van een bestandspointer in op een gespecificeerde locatie
ftell () Geeft de huidige positie van a file pointer
rewind () Zet de file pointer aan het begin van een bestand

In deze tutorial leert u:

  • Hoe u een bestand
  • Hoe een bestand te sluiten:
  • Schrijven naar een bestand
    • fputc () functie:
    • fputs () functie:
    • fprintf () Functie:
  • Gegevens uit een bestand lezen
  • Interactief bestand lezen en schrijven met getc en putc

Hoe maak je een bestand aan

Telkens wanneer je met een bestand wilt werken, is de eerste stap het maken van een bestand. Een bestand is niets anders dan ruimte in een geheugen waarin gegevens worden opgeslagen.

Om een bestand in een “C” -programma te maken, wordt de volgende syntaxis gebruikt,

FILE *fp;fp = fopen ("file_name", "mode");

In de bovenstaande syntaxis is het bestand een datastructuur die is gedefinieerd in de standaardbibliotheek.

fopen is een standaardfunctie die wordt gebruikt om een bestand te openen.

  • Als het bestand niet aanwezig is op het systeem, wordt het gemaakt en vervolgens geopend.
  • Als er al een bestand aanwezig is op het systeem, wordt het direct geopend met behulp van deze functie.

fp is een bestandspointer die naar het type bestand verwijst.

Telkens wanneer u een bestand opent of maakt, moet u aangeven wat u met het bestand gaat doen. Een bestand in “C” -programmering kan worden gemaakt of geopend om te lezen / schrijven. Een modus wordt gebruikt om aan te geven of u een bestand wilt openen voor een van de onderstaande doeleinden. Hieronder volgen de verschillende soorten modi in “C” -programmering die kunnen worden gebruikt tijdens het werken met een bestand.

Bestandsmodus Beschrijving
r Open een bestand om te lezen. Als een bestand zich in de leesmodus bevindt, worden er geen gegevens verwijderd als er al een bestand op een systeem aanwezig is.
w Open een bestand om te schrijven. Als een bestand zich in de schrijfmodus bevindt, wordt er een nieuw bestand gemaakt als een bestand helemaal niet bestaat. Als een bestand al aanwezig is op een systeem, worden alle gegevens in het bestand afgekapt en wordt het geopend om te schrijven doeleinden.
a Open een bestand in de toevoegmodus. Als een bestand zich in de toevoegmodus bevindt, wordt het bestand geopend. De inhoud in het bestand verandert niet.
r + open voor lezen en schrijven vanaf het begin
w + open voor lezen en schrijven, een bestand overschrijven
a + open voor lezen en schrijven, toevoegen aan bestand

In de gegeven syntaxis zijn de bestandsnaam en de modus gespecificeerd als strings, daarom moeten ze altijd tussen dubbele aanhalingstekens staan.

Voorbeeld:

#include <stdio.h>int main() {FILE *fp;fp = fopen ("data.txt", "w");}

Uitvoer:

Het bestand wordt gemaakt in dezelfde map waarin u uw code heeft opgeslagen .

U kunt het pad specificeren waar u uw bestand wilt maken

#include <stdio.h>int main() {FILE *fp;fp = fopen ("D://data.txt", "w");}

Hoe een bestand te sluiten

Je moet een bestand altijd sluiten als de bewerkingen in het bestand zijn voltooid. Het betekent dat de inhoud en links naar het bestand worden beëindigd. Dit voorkomt onbedoelde schade aan het bestand.

“C” biedt de functie fclose om een bestand te sluiten. De syntaxis van fclose is als volgt:

fclose (file_pointer);

Voorbeeld:

FILE *fp;fp = fopen ("data.txt", "r");fclose (fp);

De fclose functie neemt een bestandspointer als argument. Het bestand dat is gekoppeld aan de bestandspointer wordt vervolgens gesloten met behulp van de functie fclose.Het retourneert 0 als het sluiten succesvol was en EOF (einde van bestand) als er een fout is opgetreden tijdens het sluiten van het bestand.

Na het sluiten van het bestand kan dezelfde bestandspointer ook met andere bestanden worden gebruikt.

In “C” -programmering worden bestanden automatisch gesloten wanneer het programma wordt beëindigd. Het handmatig sluiten van een bestand door de functie fclose te schrijven, is een goede programmeerpraktijk.

Schrijven naar een bestand

In C, wanneer u naar een bestand schrijft, moeten nieuwe-regeltekens “\ n” expliciet worden toegevoegd.

De stdio-bibliotheek biedt de nodige functies om naar een bestand te schrijven:

  • fputc (char, file_pointer): het schrijft een karakter naar het bestand waarnaar wordt verwezen door file_pointer.
  • fputs (str, file_pointer): het schrijft een string naar het bestand waarnaar wordt verwezen door file_pointer.
  • fprintf (file_pointer, str, variable_lists): het drukt een string af naar het bestand waarnaar wordt verwezen door file_pointer. De string kan optioneel formaatspecificaties en een lijst met variabelen variabele_lijsten bevatten.

Het onderstaande programma laat zien hoe je naar een bestand schrijft:

fputc () Functie:

Uitvoer:

Het bovenstaande programma schrijft een enkel teken in het bestand fputc_test.txt totdat het het volgende lijnsymbool “\ n” bereikt, wat aangeeft dat de zin met succes is geschreven. Het proces is om elk teken van de array te nemen en het in het bestand te schrijven.

  1. In het bovenstaande programma hebben we een bestand gemaakt en geopend genaamd fputc_test.txt in een schrijfmodus en declareren onze string die in het bestand zal worden geschreven.
  2. We doen een teken-voor-teken schrijfbewerking met de for-lus en plaatsen elk teken in ons bestand tot de “\ n “karakter wordt aangetroffen, dan wordt het bestand gesloten met de functie fclose.

fputs () Functie:

OUTPUT:

  1. In het bovenstaande programma hebben we een bestand met de naam fputs_test.txt gemaakt en geopend in een schrijfmodus.
  2. Nadat we een schrijfbewerking hebben uitgevoerd met de functie fputs () door drie verschillende strings te schrijven
  3. Vervolgens wordt het bestand gesloten met de functie fclose.

fprintf () Functie:

OUTPUT:

  1. In het bovenstaande programma hebben we een bestand gemaakt en geopend met de naam fprintf_test.txt in een schrijfmodus.
  2. Nadat een schrijfbewerking is uitgevoerd met de functie fprintf () door een string te schrijven, wordt het bestand gesloten met de functie fclose.

Gegevens lezen uit een bestand

Er zijn drie verschillende functies gewijd aan het lezen van gegevens uit een bestand.

  • fgetc (file_pointer): het retourneert het volgende teken uit het bestand waarnaar wordt verwezen door de file pointer. Wanneer het einde van het bestand is bereikt, wordt de EOF teruggestuurd.
  • fgets (buffer, n, file_pointer): Het leest n-1 karakters uit het bestand en slaat de string op in een buffer waarin het NULL karakter “\ 0” wordt toegevoegd als het laatste karakter.
  • fscanf (bestandspointer, conversiespecificaties, variabele_adressen): het wordt gebruikt om gegevens te parseren en te analyseren. Het leest tekens uit het bestand en wijst de invoer toe aan een lijst met variabele pointers variable_adresses met behulp van conversiespecificaties. Houd er rekening mee dat, net als bij scanf, fscanf stopt met het lezen van een string wanneer een spatie of nieuwe regel wordt aangetroffen.

Het volgende programma demonstreert het lezen van het fputs_test.txt-bestand met fgets (), fscanf () en fgetc () functioneert respectievelijk:

Resultaat:

  1. In het bovenstaande programma hebben we het bestand “fprintf_test.txt” geopend dat eerder was geschreven met de functie fprintf (), en het bevat een tekenreeks “Learning C with Guru99”. We lezen het met behulp van de functie fgets () die regel voor regel leest waar de buffergrootte voldoende moet zijn om de hele regel te verwerken.
  2. We heropenen het bestand om de pointerfile te resetten zodat het naar het begin van de het dossier. Maak verschillende tekenreeksenvariabelen om elk woord afzonderlijk te behandelen. Druk de variabelen af om hun inhoud te zien. De fscanf () wordt voornamelijk gebruikt om gegevens uit een bestand te extraheren en te ontleden.
  3. Open het bestand opnieuw om de pointerfile terug te zetten naar het begin van het bestand. Lees gegevens en druk ze teken voor teken af vanuit het bestand met de functie getc () totdat de EOF-instructie wordt aangetroffen.
  4. Na het uitvoeren van een leesbewerkingsbestand met verschillende varianten, hebben we het bestand opnieuw gesloten met de functie fclose.

Interactief bestand lezen en schrijven met getc en putc

Dit zijn de eenvoudigste bestandsbewerkingen. Getc staat voor get character, en putc staat voor put character. Deze twee functies worden gebruikt om slechts één teken tegelijk te verwerken.

Het volgende programma demonstreert de bestandsbehandelingsfuncties in “C” -programmering:

Uitvoer:

  1. In het bovenstaande programma hebben een bestand gemaakt en geopend met de naam demo in een schrijfmodus.
  2. Nadat een schrijfbewerking is uitgevoerd, wordt het bestand gesloten met de functie fclose.
  3. We hebben opnieuw een bestand geopend die nu gegevens in een leesmodus bevat. Een while-lus wordt uitgevoerd totdat de eof is gevonden. Zodra het einde van het bestand is gevonden, wordt de bewerking beëindigd en worden de gegevens weergegeven met de functie printf.
  4. Na het uitvoeren van een leesbewerking wordt het bestand opnieuw gesloten met de functie fclose.

Samenvatting

  • Een bestand is een ruimte in een geheugen waar gegevens worden opgeslagen.
  • “C “programmeren biedt verschillende functies om met een bestand om te gaan.
  • Een mechanisme voor het manipuleren van de bestanden wordt bestandsbeheer genoemd.
  • Een bestand moet worden geopend voordat er bewerkingen op kunnen worden uitgevoerd.
  • Een bestand kan worden geopend in een lees-, schrijf- of toevoegmodus.
  • Getc- en putc-functies worden gebruikt om een enkel teken te lezen en te schrijven.
  • De functie fscanf () staat toe om gegevens uit een bestand te lezen en te ontleden
  • We kunnen een volledig bestand lezen (met behulp van de getc-functie) door het hele bestand te herhalen totdat het EOF wordt aangetroffen
  • We kunnen naar een bestand schrijven nadat het zijn naam heeft gemaakt, door de functie fprintf () te gebruiken en het moet de nieuwe ine-teken aan het einde van de stringtekst.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *