Përshkruan se si programuesi C krijon, hap dhe mbyll një skedar teksti ose një skedar binar.
Një skedar, do të thotë një seri bajtash, pavarësisht nëse është një skedar teksti ose një skedar binar, C Language, jo vetëm që ofron akses në funksionet e nivelit të lartë, por gjithashtu siguron thirrjen themelore (OS) për të përpunuar skedarët në pajisjen e ruajtjes . Ky kapitull do të shpjegojë thirrjet e rëndësishme në menaxhimin e dokumenteve.
dosje e hapur
Zakonisht duke përdorur funksionin fopen () për të krijuar një skedar të ri ose për të hapur një skedar ekzistues, kjo thirrje inicializon një objekt të llojit FILE që përmban të gjithë informacionin e nevojshëm për të kontrolluar rrjedhën. Këtu është prototipi i kësaj thirrjeje funksioni:
FILE *fopen ( const char * emri i skedarit , const char * mode );
Këtu emri i skedarit është një varg për të emërtuar një skedar, vlera e modalitetit të aksesit mund të jetë një nga vlerat e mëposhtme:
model | përshkrimi |
r | Hapni një skedar teksti ekzistues që lejon leximin e tij. |
w | Hapni një skedar teksti që lejon shkrimin në skedar. Nëse skedari nuk ekziston, krijohet një skedar i ri. Këtu, programi juaj shkruan përmbajtjen që nga fillimi i skedarit. Nëse skedari ekziston, ai do të shkurtohet në gjatësi zero dhe do të rishkruhet. |
a | Hapni një skedar teksti dhe shkruani në skedar në modalitetin e shtojcave. Nëse skedari nuk ekziston, krijohet një skedar i ri. Këtu, programi juaj i shton përmbajtjen skedarëve që keni tashmë. |
r+ | Hapni një skedar teksti që ju lejon të lexoni dhe shkruani skedarin. |
w+ | Hapni një skedar teksti që ju lejon të lexoni dhe shkruani skedarin. Nëse skedari ekziston tashmë, skedari shkurtohet në gjatësi zero, dhe nëse skedari nuk ekziston, krijohet një skedar i ri. |
a+ | Hapni një skedar teksti që ju lejon të lexoni dhe shkruani skedarin. Nëse skedari nuk ekziston, krijohet një skedar i ri. Leximi fillon në fillim të skedarit dhe shkrimi është vetëm në modalitetin e shtojcës. |
Nëse skedari binar përpunohet, përdorni mënyrën e mëposhtme të hyrjes për të zëvendësuar sa më sipër:
"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"
dosje e mbyllur
Për të mbyllur skedarin, ju lutemi përdorni funksionin fclose(). Prototipi i funksionit është si më poshtë:
int fclose (FILE *fp);
- Nëse skedari mbyllet me sukses, funksioni fclose() kthen zero, dhe nëse gabimi kthen EOF. Ky funksion, në fakt, heq të dhënat nga buferi, mbyll skedarin dhe lëshon të gjithë memorien e përdorur për atë skedar. EOF është një konstante e përcaktuar në skedarin e kokës stdio.h
Biblioteka standarde C ofron funksione të ndryshme për të lexuar dhe shkruar skedarë sipas karaktereve ose si një varg me gjatësi fikse.
Shkruani në dosje
Këtu janë funksionet më të thjeshta për të shkruar karaktere në transmetim:
int fputc (int c, FILE *fp);
Funksioni fputc () shkruan vlerën e karakterit të parametrit c në rrjedhën e daljes që tregon fp. Nëse shkrimet janë të suksesshme, ai kthen karakterin e shkruar dhe EOF nëse ndodh një gabim. Ju mund të përdorni funksionin e mëposhtëm për të shkruar një varg që përfundon me një null në transmetim:
int fputs (const char *s, FILE *fp);
Funksioni fputs () shkruan vargun s në rrjedhën dalëse ku tregon fp. Nëse shkrimet kanë sukses, ai kthen një vlerë jo negative dhe EOF nëse ndodh një gabim. Ju gjithashtu mund të përdorni funksionin e int fprintf (FILE * fp, formati const char *,...) shkruan një varg në skedar. Provoni shembullin e mëposhtëm:
Shënim: Sigurohuni që të keni një direktori tmp të disponueshme dhe nëse nuk ekziston, duhet ta krijoni fillimisht në kompjuterin tuaj.
/ tmp është zakonisht një direktori e përkohshme në sistemin Linux. Nëse punoni në sistemin Windows, duhet ta modifikoni atë në një direktori ekzistuese në mjedisin lokal, si p.sh.: C: \ tmp, D: \ tmp, etj.
shembull i gjallë
#përfshi
Kur kodi i mësipërm përpilohet dhe ekzekutohet, ai krijon një skedar të ri test.txt në drejtorinë / tmp. Dhe shkruan në dy rreshta duke përdorur dy funksione të ndryshme. Le të lexojmë këtë skedar në vazhdim.
Lexoni skedarin
Më poshtë është funksioni më i thjeshtë për të lexuar një karakter të vetëm nga një skedar:
int fgetc (FILE * fp);
Funksioni fgetc () lexon një karakter nga skedari hyrës në të cilin tregon fp. Vlera e kthyer është karakteri i lexuar dhe EOF nëse ndodh një gabim. Funksioni i mëposhtëm ju lejon të lexoni një varg nga një transmetim:
char *fgets (char *buf, int n, FILE *fp);
Funksioni fgets () lexon n-1 karaktere nga rryma hyrëse e drejtuar nga fp. Ai kopjon vargun e lexuar në buffer-in dhe shton një karakter null në fund për të përfunduar vargun.
Nëse ky funksion has një karakter të vijës së thyer '\ n' ose EOF të fundit të skedarit përpara se të lexojë karakterin e fundit, atëherë kthehet vetëm te karakteret e lexuara, duke përfshirë ndërprerjet e rreshtave. Mund të përdorni gjithashtu funksionin int fscanf (FILE * fp, const char * format,...) për të lexuar vargun nga skedari, por ai ndalon së lexuari kur has hapësirën e parë dhe ndërprerjen e rreshtit.
shembull i gjallë
#përfshi
Kur kodi i mësipërm përpilohet dhe ekzekutohet, ai lexon skedarët e krijuar në seksionin e mëparshëm, duke prodhuar rezultatet e mëposhtme:
1: Ky 2: po teston për fprintf...
3: Ky është testimi për fputs...
Së pari, metoda e fscanf() lexon vetëm This .sepse has një hapësirë në pjesën e pasme. Së dyti, thirrni funksionin fgets () për të lexuar pjesën e mbetur deri në fund të rreshtit. Së fundi, thirrni fgets () për të lexuar plotësisht rreshtin e dytë.
Funksioni binar I/O
Dy funksionet e mëposhtme përdoren për hyrjen dhe daljen binare:
size_t fread (void *ptr , size_t size_e_elements , size_t numri_e_elements , FILE *a_file ); size_t fwrite (const void *ptr , size_t size_e_elements , size_t numri_e_elements , FILE *a_file );
Të dy funksionet lexohen dhe shkruajnë për blloqet e ruajtjes - zakonisht vargje ose struktura.
Më sipër rreth leximit dhe shkrimit të skedarit C i përket HDV Phoelectron Technology Ltd., një operacion teknik softuerësh. Dhe kompania për pajisjet e lidhura me rrjetin (si p.sh.: ACONU/ komunikimONU/ inteligjentONU/ fibërONU, etj.) ka bashkuar një ekip të fuqishëm softuerësh, për çdo klient personalizon kërkesat ekskluzive që kanë nevojë, gjithashtu lërini produktet tona më inteligjente dhe të avancuara.