C failų įvestis / išvestis: sukurkite, atidarykite, skaitykite, rašykite ir uždarykite failą

C Failų valdymas

Failas gali būti naudojamas dideliam nuolatinių duomenų kiekiui saugoti. Kaip ir daugeliu kitų kalbų, „C“ teikia šias failų valdymo funkcijas,

  1. Failo kūrimas
  2. Failo atidarymas
  3. Skaityti failą
  4. Rašymas į bylą
  5. Failo uždarymas

Toliau pateikiamos svarbiausios „C“ failų valdymo funkcijos

funkcija tikslas
fopen () Kurti failą arba atidaryti esamą failą
fclose () Failo uždarymas
fprintf () Duomenų bloko įrašymas į failą
fscanf () Bloko duomenų skaitymas iš failo
getc () Skaito vieną simbolį iš failo
putc () Į failą įrašo vieną simbolį
getw () Iš failo nuskaitomas sveikasis skaičius
putw () Viso skaičiaus rašymas faile
fseek () Nustato failo žymeklio padėtį į nurodytą vietą
ftell () Grąžina dabartinę failo žymeklio padėtį
atsukti () Nustato failo žymeklį failo pradžioje

Šioje pamokoje sužinosite

  • Kaip sukurti failą
  • Kaip uždaryti failą:
  • Rašymas į failą
    • fputc () Funkcija:
    • įėjimai () Funkcija:
    • fprintf () Funkcija:
  • Duomenų skaitymas iš failo
  • Interaktyvus failas Skaitykite ir rašykite naudodami „getc“ ir „putc“

Kaip sukurti failą

Visada, kai norite dirbti su failu, pirmiausia turite sukurti failą. Failas yra ne kas kita, o vieta atmintyje, kurioje saugomi duomenys.

Norėdami sukurti failą „C“ programoje pagal sintaksę,

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

Pirmiau pateiktoje sintaksėje failas yra duomenų struktūra, apibrėžta standartinėje bibliotekoje.

„fopen“ yra standartinė funkcija, naudojama atidarant failą.

  • Jei failo sistemoje nėra, jis sukuriamas ir atidaromas.
  • Jei failas jau yra sistemoje, jis atidaromas tiesiogiai naudojant šią funkciją.

fp yra failo žymeklis, nurodantis tipo failą.

Kiekvieną kartą, kai atidarote ar sukuriate failą, turite nurodyti, ką darysite su failu. „C“ programavimo failą galima sukurti arba atidaryti skaitymo / rašymo tikslais. Režimas naudojamas nurodyti, ar norite atidaryti failą bet kuriuo iš toliau nurodytų tikslų. Toliau pateikiami skirtingi „C“ programavimo režimų tipai, kuriuos galima naudoti dirbant su byla.

Failo režimas apibūdinimas
r Atidarykite failą skaityti. Jei failas veikia skaitymo režimu, duomenys neištrinami, jei failas jau yra sistemoje.
w Atidarykite failą rašymui. Jei failas veikia rašymo režimu, tada sukuriamas naujas failas, jei failo iš viso nėra. Jei failas jau yra sistemoje, visi failo duomenys yra sutrumpinti ir atidaryti rašymo tikslais.
a Atidarykite failą pridėjimo režimu. Jei failas veikia pridedant, failas atidaromas. Failo turinys nesikeičia.
r + nuo pat pradžių atvira skaitymui ir rašymui
w + atidaryti skaitymui ir rašymui, perrašant failą
a + atidaryti skaitymui ir rašymui, pridėti prie bylos

Nurodytoje sintaksėje failo pavadinimas ir režimas nurodomi kaip eilutės, todėl jie visada turi būti įterpti į dvigubas kabutes.

Pavyzdys:

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

Išvestis:

Failas sukurtas tame pačiame aplanke, kuriame išsaugojote kodą.

Galite nurodyti kelią, kuriame norite sukurti failą

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

Kaip uždaryti failą

Visada reikia uždaryti failą, kai tik baigiasi operacijos. Tai reiškia, kad failo turinys ir nuorodos yra nutraukti. Tai apsaugo nuo atsitiktinio failo sugadinimo.

„C“ suteikia funkciją „fclose“, kad atliktų failų uždarymo operaciją. „Fclose“ sintaksė yra tokia,

fclose (file_pointer);

Pavyzdys:

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

Funkcija „fclose“ kaip argumentą laiko failo žymeklį. Tada failas, susietas su failo žymekliu, uždaromas naudojant funkciją „fclose“. Jei uždarymas buvo sėkmingas, jis grąžina 0, o uždarant failą įvyko klaida - EOF (failo pabaiga).

Uždarius failą, tą patį failo žymeklį galima naudoti ir su kitais failais.

Programuojant „C“ failai automatiškai uždaromi, kai programa nutraukiama. Failo uždarymas rankiniu būdu, rašant fclose funkciją, yra gera programavimo praktika.

Rašymas į failą

C, kai rašote į failą, reikia aiškiai pridėti naujos eilutės simbolius „\ n“.

Stdio biblioteka siūlo reikiamas funkcijas, kad būtų galima rašyti į failą:

  • fputc (char, file_pointer) : jis rašo simbolį į failą, kurį nurodo file_pointer.
  • įvestys (str, file_pointer) : ji užrašo eilutę faile, nurodytą file_pointer.
  • fprintf (file_pointer, str, variable_lists) : Spausdina eilutę failui, kurį nurodo file_pointer. Į eilutę gali būti įtraukti formato specifikatoriai ir kintamųjų kintamųjų sąrašas sąrašas.

Žemiau pateikiama programa parodo, kaip rašyti į failą:

fputc () Funkcija:

#include int main() {int i;FILE * fptr;char fn[50];char str[] = "Guru99 Rocks\n";fptr = fopen("fputc_test.txt", "w"); // "w" defines "writing mode"for (i = 0; str[i] != '\n'; i++) {/* write to file using fputc() function */fputc(str[i], fptr);}fclose(fptr);return 0;}

Išvestis:

Pirmiau nurodyta programa įrašo vieną simbolį į failą fputc_test.txt, kol pasiekia kitą eilutės simbolį „\ n“, kuris rodo, kad sakinys buvo sėkmingai parašytas. Procesas yra paimti kiekvieną masyvo simbolį ir įrašyti jį į failą.

  1. Pirmiau pateiktoje programoje mes sukūrėme ir atidarėme failą fputc_test.txt rašymo režimu ir deklaruojame savo eilutę, kuri bus įrašyta į failą.
  2. Mes atliekame simbolių rašymą pagal simbolius pagal ciklą ir kiekvieną simbolį dedame į savo failą, kol sutinkamas simbolis „\ n“, tada failas uždaromas naudojant funkciją fclose.

įėjimai () Funkcija:

#include int main() {FILE * fp;fp = fopen("fputs_test.txt", "w+");fputs("This is Guru99 Tutorial on fputs,", fp);fputs("We don't need to use for loop\n", fp);fputs("Easier than fputc function\n", fp);fclose(fp);return (0);}

IŠĖJIMAS:

  1. Pirmiau pateiktoje programoje rašymo režimu sukūrėme ir atidarėme failą pavadinimu fputs_test.txt.
  2. Po to, kai atliksime rašymo operaciją, naudodami funkciją fputs (), parašydami tris skirtingas eilutes
  3. Tada failas uždaromas naudojant funkciją fclose.

fprintf () Funkcija:

#include int main() {FILE *fptr;fptr = fopen("fprintf_test.txt", "w"); // "w" defines "writing mode"/* write to file */fprintf(fptr, "Learning C with Guru99\n");fclose(fptr);return 0;}

IŠĖJIMAS:

  1. Pirmiau pateiktoje programoje sukūrėme ir atidarėme failą pavadinimu fprintf_test.txt rašymo režimu.
  2. Atlikus rašymo operaciją naudojant funkciją fprintf (), užrašant eilutę, failas uždaromas naudojant funkciją fclose.

Duomenų skaitymas iš failo

Yra trys skirtingos funkcijos, skirtos duomenims iš failo nuskaityti

  • fgetc (file_pointer): Grąžina kitą simbolį iš failo, kurį nurodo failo žymeklis. Pasiekus failo pabaigą, EOF siunčiamas atgal.
  • „Fgets“ (buferis, n, file_pointer): nuskaito n-1 simbolius iš failo ir saugo eilutę buferyje, kuriame NULL simbolis „\ 0“ pridedamas kaip paskutinis simbolis.
  • fscanf (file_pointer, conversion_specifiers, kintamųjų_adresai) : Jis naudojamas duomenims analizuoti ir analizuoti. Jis nuskaito simbolius iš failo ir priskiria įvestį kintamųjų rodyklių kintamųjų_adresų sąrašui, naudodamas konversijos specifikatorius. Atminkite, kad kaip ir „scanf“ atveju, „fscanf“ nustoja skaityti eilutę, kai atsiranda tarpas arba nauja eilutė.

Ši programa rodo skaitymą iš „fputs_test.txt“ failo, naudodama atitinkamai „fgets“ (), „fscanf“) ir „fgetc“ () funkcijas:

#include int main() {FILE * file_pointer;char buffer[30], c;file_pointer = fopen("fprintf_test.txt", "r");printf("----read a line----\n");fgets(buffer, 50, file_pointer);printf("%s\n", buffer);printf("----read and parse data----\n");file_pointer = fopen("fprintf_test.txt", "r"); //reset the pointerchar str1[10], str2[2], str3[20], str4[2];fscanf(file_pointer, "%s %s %s %s", str1, str2, str3, str4);printf("Read String1 |%s|\n", str1);printf("Read String2 |%s|\n", str2);printf("Read String3 |%s|\n", str3);printf("Read String4 |%s|\n", str4);printf("----read the entire file----\n");file_pointer = fopen("fprintf_test.txt", "r"); //reset the pointerwhile ((c = getc(file_pointer)) != EOF) printf("%c", c);fclose(file_pointer);return 0;}

Rezultatas:

----read a line----Learning C with Guru99----read and parse data----Read String1 |Learning|Read String2 |C|Read String3 |with|Read String4 |Guru99|----read the entire file----Learning C with Guru99

  1. Pirmiau pateiktoje programoje atidarėme failą pavadinimu "fprintf_test.txt", kuris anksčiau buvo parašytas naudojant funkciją fprintf (), ir jame yra eilutė "Mokymasis C su Guru99". Mes skaitėme ją naudodamiesi funkcija „fgets“ (), kuri skaito eilutę po eilutės, kur buferio dydis turi būti pakankamas, kad būtų galima tvarkyti visą eilutę.
  2. Mes vėl atidarome failą, kad žymiklio failas būtų perkeltas į failo pradžią. Sukurkite įvairius eilučių kintamuosius, kad galėtumėte tvarkyti kiekvieną žodį atskirai. Atspausdinkite kintamuosius, kad pamatytumėte jų turinį. „Fscanf“ () daugiausia naudojamas duomenims iš failo išgauti ir išanalizuoti.
  3. Iš naujo atidarykite failą, kad žymeklio failas būtų perkeltas į failo pradžią. Skaitykite duomenis ir spausdinkite juos iš failo simbolio po simbolio, naudodami funkciją getc (), kol bus pateiktas EOF sakinys
  4. Atlikę skaitymo operacijos failą naudodami skirtingus variantus, mes vėl uždarėme failą naudodami funkciją fclose.

Interaktyvus failas Skaitykite ir rašykite naudodami „getc“ ir „putc“

Tai paprasčiausios failų operacijos. „Getc“ reiškia „get character“, o „putc“ - „put character“. Šios dvi funkcijos naudojamos tvarkyti tik vieną simbolį vienu metu.

Ši programa rodo failų tvarkymo funkcijas programuojant „C“:

#include int main() {FILE * fp;char c;printf("File Handling\n");//open a filefp = fopen("demo.txt", "w");//writing operationwhile ((c = getchar()) != EOF) {putc(c, fp);}//close filefclose(fp);printf("Data Entered:\n");//readingfp = fopen("demo.txt", "r");while ((c = getc(fp)) != EOF) {printf("%c", c);}fclose(fp);return 0;}

Išvestis:

  1. Pirmiau pateiktoje programoje mes sukūrėme ir atidarėme failą, pavadintą „demo“, rašymo režimu.
  2. Atlikus rašymo operaciją, failas uždaromas naudojant funkciją fclose.
  3. Mes vėl atidarėme failą, kuriame dabar yra duomenys skaitymo režimu. Kol bus vykdoma ciklo trukmė, kol bus rastas eof. Suradus failo pabaigą, operacija bus nutraukta ir duomenys bus rodomi naudojant funkciją printf.
  4. Atlikus skaitymo operaciją, failas vėl uždaromas naudojant funkciją fclose.

Santrauka

  • Failas yra vieta atmintyje, kurioje saugomi duomenys.
  • „C“ programavimas suteikia įvairias funkcijas tvarkant bylą.
  • Manipuliavimo su failais mechanizmas vadinamas failų valdymu.
  • Failas turi būti atidarytas prieš atliekant su juo susijusias operacijas.
  • Failą galima atidaryti skaitymo, rašymo ar pridėjimo režimu.
  • „Getc“ ir „putc“ funkcijos naudojamos vienam simboliui skaityti ir rašyti.
  • Funkcija fscanf () leidžia nuskaityti ir išanalizuoti duomenis iš failo
  • Mes galime perskaityti (naudodami funkciją getc ) visą failą, apjungdami visą failą, kol susidursite su EOF
  • Mes galime parašyti failą sukūrę jo pavadinimą naudodami funkciją fprintf () , o eilutės teksto pabaigoje jis turi turėti naujos eilutės simbolį.

Įdomios straipsniai...