C Tiedostonhallinta
Tiedostoa voidaan käyttää suuren määrän pysyvien tietojen tallentamiseen. Kuten monet muutkin kielet, C tarjoaa seuraavat tiedostojen hallintatoiminnot,
- tiedoston luominen
- tiedoston avaaminen
- tiedoston lukeminen
- Kirjoittaminen tiedostoon
- Tiedoston sulkeminen
Seuraavat ovat tärkeimmät tiedostossa C käytettävissä olevat tiedostojen hallintatoiminnot.
funktio | tarkoitus |
fopen () | Tiedoston luominen tai olemassa olevan tiedoston avaaminen |
fclose () | Tiedoston sulkeminen |
fprintf () | Tietolohkon kirjoittaminen tiedostoon |
fscanf () | estää tietoja tiedostosta |
getc () | Lukee yhden merkin tiedostosta |
putc () | kirjoittaa yhden merkin tiedostoon |
getw () | Lukee kokonaisluvun tiedostosta |
putw () | Kokonaisluvun kirjoittaminen tiedostoon |
fseek () | Asettaa tiedoston osoittimen sijainnin määritettyyn sijaintiin |
ftell () | Palauttaa tiedoston nykyisen sijainnin tiedostosoitin |
kelaa taaksepäin () | Asettaa tiedoston osoittimen tiedoston alkuun |
Tässä opetusohjelmassa opit-
- tiedoston luominen
- Tiedoston sulkeminen:
- Kirjoittaminen tiedostoon
- fputc () Funktio:
- fputs () Toiminto:
- fprintf () Funktio:
- Tietojen lukeminen tiedostosta
- Interaktiivinen tiedosto Lue ja kirjoita getc: llä ja putc: llä
Tiedoston luominen
Aina kun haluat työskennellä tiedoston kanssa, ensimmäinen vaihe on luoda tiedosto. Tiedosto ei ole muuta kuin tilaa muistissa, johon tiedot on tallennettu.
Tiedoston luomiseen C-ohjelmaan käytetään syntaksia noudattaen.
FILE *fp;fp = fopen ("file_name", "mode");
Yllä olevassa syntaksissa tiedosto on tietorakenne, joka on määritelty standardikirjastossa.
fopen on vakiotoiminto, jota käytetään tiedoston avaamiseen.
- Jos tiedostoa ei ole järjestelmässä, se luodaan ja avataan.
- Jos tiedosto on jo järjestelmässä, se avataan suoraan käyttämällä tätä toimintoa.
fp on tiedostotiedosto, joka osoittaa tyyppitiedostoon.
Aina kun avaat tai luot tiedoston, sinun on määritettävä, mitä aiot tehdä tiedostolle. ”C” -ohjelmassa tiedosto voidaan luoda tai avata lukemista tai kirjoittamista varten. Tilaa käytetään määrittämään, haluatko avata tiedoston mihin tahansa alla annettuun tarkoitukseen. Seuraavassa on erilaisia C-ohjelmoinnin tilatyyppejä, joita voidaan käyttää tiedoston kanssa työskenneltäessä.
Tiedostotila | Kuvaus |
r | Avaa tiedosto lukemista varten. Jos tiedosto on lukutilassa, tietoja ei poisteta, jos tiedosto on jo järjestelmässä. |
w | Avaa tiedosto kirjoitusta varten. Jos tiedosto on kirjoitustilassa, uusi tiedosto luodaan, jos tiedostoa ei ole ollenkaan. Jos tiedosto on jo järjestelmässä, kaikki tiedoston sisällä olevat tiedot katkaistaan ja avataan kirjoittamista varten tarkoituksiin. |
a | Avaa tiedosto liitetilassa. Jos tiedosto on liitetilassa, tiedosto avataan. Tiedoston sisältö ei muutu. |
r + | avoin lukemiseen ja kirjoittamiseen alusta alkaen |
w + | avoin lukemista ja kirjoittamista varten, tiedoston korvaaminen |
a + | avoin lukemiseen ja kirjoittamiseen, liittäminen tiedostoon |
Annetussa syntaksissa tiedostonimi ja tila määritetään merkkijonoina, joten ne on aina suljettava lainausmerkkeihin.
Esimerkki:
#include <stdio.h>int main() {FILE *fp;fp = fopen ("data.txt", "w");}
Tulos:
Tiedosto luodaan samaan kansioon, johon olet tallentanut koodisi .
Voit määrittää polun, johon haluat luoda tiedoston
#include <stdio.h>int main() {FILE *fp;fp = fopen ("D://data.txt", "w");}
Tiedoston sulkeminen
Tiedosto on aina suljettava aina, kun tiedostossa olevat toiminnot ovat ohi. Se tarkoittaa, että tiedoston sisältö ja linkit lopetetaan. Tämä estää tiedoston vahingossa tapahtuvan vahingoittumisen.
”C” tarjoaa fclose-toiminnon tiedoston sulkemistoiminnon suorittamiseksi. Fclose-syntaksin muoto on seuraava,
fclose (file_pointer);
Esimerkki:
FILE *fp;fp = fopen ("data.txt", "r");fclose (fp);
fclose funktio ottaa tiedostosoittimen argumentiksi. Tiedostosoittimeen liittyvä tiedosto suljetaan sitten fclose-toiminnon avulla.Se palauttaa 0, jos sulkeminen onnistui, ja EOF (tiedoston loppu), jos tiedoston sulkemisessa on tapahtunut virhe.
Tiedoston sulkemisen jälkeen samaa tiedostosoitinta voidaan käyttää myös muiden tiedostojen kanssa.
”C” -ohjelmassa tiedostot sulkeutuvat automaattisesti, kun ohjelma lopetetaan. Tiedoston sulkeminen manuaalisesti kirjoittamalla fclose-toiminto on hyvä ohjelmointikäytäntö.
Kirjoittaminen tiedostoon
Kun kirjoitat tiedostoon C, C-kirjaimessa on nimenomaisesti lisättävä uuden rivin merkkejä ”\ n”.
Stdio-kirjasto tarjoaa tarvittavat toiminnot tiedostoon kirjoittamiseen:
- fputc (char, file_pointer): Se kirjoittaa merkin tiedostoon, johon file_pointer osoittaa.
- syötteet (str, file_pointer): Se kirjoittaa merkkijonon tiedostoon, johon file_pointer osoittaa.
- fprintf (file_pointer, str, variable_lists): Se tulostaa merkkijonon tiedostoon, johon file_pointer osoittaa. Merkkijono voi valinnaisesti sisältää muodon määrittelijät ja luettelon muuttujista variable_lists.
Alla oleva ohjelma näyttää, miten tiedostoon kirjoitetaan:
fputc () Toiminto:
Tulos:
Yllä oleva ohjelma kirjoittaa yhden merkin tiedostoon fputc_test.txt, kunnes se saavuttaa seuraavan rivisymbolin ”\ n”, joka osoittaa, että lause on kirjoitettu onnistuneesti. Prosessi on ottaa taulukon kukin merkki ja kirjoittaa se tiedostoon.
- Olemme luoneet ja avanneet yllä olevassa ohjelmassa tiedoston nimeltään fputc_test.txt kirjoitustilassa ja julista merkkijono, joka kirjoitetaan tiedostoon.
- Teemme merkkikohtaisen kirjoitusoperaation silmukalle ja laitamme jokaisen merkin tiedostoon, kunnes ”\ n ”merkki esiintyy, tiedosto suljetaan fclose-funktiolla.
fputs () Toiminto:
OUTPUT:
- Edellä olevassa ohjelmassa olemme luoneet ja avanneet tiedoston nimeltä fputs_test.txt kirjoitustilassa.
- Sen jälkeen kun olemme tehneet kirjoitusoperaation käyttämällä fputs () -funktiota kirjoittamalla kolme erilaista merkkijonoa
- Sitten tiedosto suljetaan fclose-funktiolla.
fprintf () Funktio:
OUTPUT:
- Edellä olevassa ohjelmassa olemme luoneet ja avanneet tiedoston nimeltä fprintf_test.txt kirjoitustilassa.
- Kun kirjoitusoperaatio on suoritettu käyttämällä fprintf () -funktiota kirjoittamalla merkkijono, tiedosto suljetaan fclose-funktiolla.
Tietojen lukeminen tiedostosta
Tiedostojen tietojen lukemiseen on omistettu kolme erilaista toimintoa.
- fgetc (file_pointer): Se palauttaa tiedoston seuraavan osoitteen, johon osoitin osoittaa. Kun tiedoston loppu on saavutettu, EOF lähetetään takaisin.
- fgets (puskuri, n, file_pointer): Se lukee n-1 merkkiä tiedostosta ja tallentaa merkkijonon puskuriin, johon NULL-merkki ”\ 0” lisätään viimeisenä merkkinä.
- fscanf (file_pointer, conversion_specifiers, variable_adresses): Sitä käytetään tietojen jäsentämiseen ja analysointiin. Se lukee merkkejä tiedostosta ja osoittaa syötteen muuttujien osoittimien luetteloon muuttujien osoitteet muunnosmäärittimien avulla. Muista, että kuten scanf: n kohdalla, fscanf lopettaa merkkijonon lukemisen, kun välilyönti tai uusi rivi esiintyy.
Seuraava ohjelma osoittaa lukemisen fputs_test.txt-tiedostosta fgets (), fscanf () ja fgetc () toimii vastaavasti:
Tulos:
- Edellä olevassa ohjelmassa olemme avanneet tiedoston nimeltä ”fprintf_test.txt”, joka on aiemmin kirjoitettu fprintf () -funktiolla, ja se sisältää merkkijonon ”Learning C with Guru99”. Luemme sen käyttämällä fgets () -toimintoa, joka lukee rivi riviltä, jossa puskurin koon on oltava riittävä koko rivin käsittelemiseen.
- Avaamme tiedoston uudelleen palauttaaksemme osoitintiedoston osoittamaan tiedosto. Luo useita merkkijonomuuttujia käsittelemään kutakin sanaa erikseen. Tulosta muuttujat nähdäksesi niiden sisällön. Fscanf () -tunnistetta käytetään pääasiassa tietojen purkamiseen ja jäsentämiseen tiedostosta.
- Avaamalla tiedosto uudelleen palautetaan osoitintiedosto osoittamaan tiedoston alkuun. Lue tiedot ja tulosta ne tiedostomerkkeittäin merkin avulla käyttäen getc () -funktiota, kunnes EOF-käsky esiintyy.
- Suoritettuamme lukutoimintotiedoston eri muunnelmilla suljet tiedoston uudelleen fclose-funktiolla. / li>
Vuorovaikutteinen tiedostojen luku ja kirjoitus getc: llä ja putc: llä
Nämä ovat yksinkertaisia tiedostotoimintoja. Getc tarkoittaa get-merkkiä ja putc tarkoittaa put-luonnetta. Näitä kahta toimintoa käytetään vain yhden merkin käsittelemiseen kerrallaan.
Seuraava ohjelma näyttää tiedostojen käsittelytoiminnot C-ohjelmoinnissa:
Tulos:
- Yllä olevassa ohjelmassa olet luonut ja avannut demotiedoston kirjoitustilassa.
- Kun kirjoitusoperaatio on suoritettu, tiedosto suljetaan fclose-funktiolla.
- Olemme jälleen avaaneet tiedoston joka sisältää nyt tietoja lukutilassa. Jonkin aikaa silmukka suoritetaan, kunnes eof on löydetty. Kun tiedoston loppu on löydetty, toiminto lopetetaan ja tiedot näytetään käyttämällä printf-toimintoa.
- Lukemisen jälkeen tiedosto suljetaan uudelleen fclose-toiminnolla.
Yhteenveto
- Tiedosto on muistissa oleva tila, johon tietoja tallennetaan.
- ”C ”ohjelmointi tarjoaa useita toimintoja tiedoston käsittelemiseksi.
- Tiedostojen käsittelymekanismia kutsutaan tiedostonhallinnaksi.
- Tiedosto on avattava ennen sen suorittamista.
- Tiedosto voidaan avata luku-, kirjoitus- tai liitetilassa.
- Getc- ja putc-toimintoja käytetään yksittäisen merkin lukemiseen ja kirjoittamiseen.
- funktio fscanf () sallii tietojen lukemisen ja jäsentämisen tiedostosta
- Voimme lukea (getc-funktiota käyttämällä) kokonaisen tiedoston silmukalla peittämällä kaikki tiedostot, kunnes EOF on kohdattu > Voimme kirjoittaa tiedostoon nimen luomisen jälkeen käyttämällä funktiota fprintf () ja siinä on oltava newl merkkijono tekstin lopussa.