| |||||||
| Registracija | FAQ | Lista korisnika | Kalendar | Pretraži | Današnje Poruke | Označi forume pročitanima | Online igre |
| Tutoriali i Trikovi Raspravljate o temi Datoteke u Tehnologija i Tehnika forumu; U ovom vodiču ću vam objasniti ono što biste trebali znati osnovno o datotekama kako biste mogli raditi sa njima ... |
![]() |
| | Opcije Teme |
| | #1 (permalink) |
| Administrator | Datoteke U ovom vodiču ću vam objasniti ono što biste trebali znati osnovno o datotekama kako biste mogli raditi sa njima Prvo ćemo započet nešto osnovno o datotekama, pa zatim deklaracijom pokazivača na datoteku, dodjeljivanje vrijednosti pokazivača na datoteku i onda ćemo objasniti na koji se način pristupa datoteci, kako zatvaramo datoteku, i dvije funkcije: funkcija za upis bloka podataka u datoteku i funkcija za čitanje podataka iz datoteke. Također ćemo riješiti i jedan primjer zadatka. Datoteke - Datoteka je skup međusobno povezanih podataka spremljenih na disk. - Datotekama pristupamo preko pokazivača na datoteku. (da bi pristupili datoteci pokazivač mora biti deklariran) Deklaracija pokazivača na datoteku Kod: FILE *fp; Dodjeljivanje vrijednosti pokazivača na datoteku - pokazivač na datoteku dodjeljujemo vrijednosti pomoću funkcije fopen( ) Kod: fp=fopen("ime datoteke" , "način pristupa datoteci");
if(fp=NULL) – moramo ispitati da li je fp=nuli
{printf("n Greška kod otvaranja datoteke");
exit(1); - ovime izlazimo van iz programa
} Način i pristup datoteci r - datoteka mora postojati inače će fopen javiti grešku (NULL) - datoteci pristupamo zbog čitanja sadržaja datoteke (također i zbog pisanja sadržaja datoteke) w - datoteci pristupamo zbog upisa sadržaja u datoteku - ukoliko navedena datoteka već postoji njezin će sadržaj biti prebrisan novim sadržajem a - pristupamo datoteci zbog dodavanja sadržaja na kraj datoteke - ako datoteka ne postoji bit će kreirana, kreirat ćemo novu datoteku s navedenim imenom r, w i a – nam omogućuje samo tekstualni pristup datoteci IME DATOTEKE "c:proba.txt" Zatvaranje datoteke - nakon prestanka rada s datotekama, datoteku je potrebno zatvoriti - datoteku zatvaramo funkcijom fclose(fp); - budući da može biti više datoteka moramo navesti ime datoteke koju će funkcija fclose zatvoriti, u našem slučaju to je datoteka (fp); Funkcija za upis bloka podatak u datoteku - funkcija glasi fwrite i ona ima više argumenata Kod: fwrite(&blok, sizeof(struct raz), 1, fp); sizeof - veličina bloka podataka u bajtima (2. argument) struct raz - ovo smo samo naveli kao primjer, može biti bilo koja druga struktura (3. argument) broj 1 - označava broj blokova podataka (4. argument) fp – definiranje datoteke u koju upisujemo blok podataka (5. argument) Funkcija za čitanje podataka iz datoteke fread – ima iste argumente kao i funkcija fwrite Kod: fread(&blok, sizeof(struct raz), 1, fp); sizeof - veličina bloka podataka u bajtima (2. argument) struct raz - ovo smo samo naveli kao primjer, može biti bilo koja druga struktura (3. argument) broj 1 - označava broj blokova podataka (4. argument) fp – definiranje datoteke u koju upisujemo blok podataka (5. argument) Sada ćemo riješti jedan primjer na temelju svega ovoga što smo napisali. Primjer: Upisati ćemo u datoteku podatke za 10 učenika: znači ime, prezime, broj opravdanih i neopravdanih sati. Pročitati ćemo podatke iz datoteke, ispisati prosječan broj izostanaka po učeniku, te podatke o učeniku s više od 30 sati izostanka. Kod: #include<stdio.h>
struct ucenik{
char ime[10];
char prezime[10];
int opr, neopr;
}uc;
main(){
FILE *fp;
float pr,zb=0;
int i;
printf("n Upiši ime i prezime, te broj opravdanih i neopravdanih izostanaka");
fp=fopen("IZOSTANCI.TXT","w");
for(i=0;i<10;i++){
scanf("%s %s %d %d",uc.ime,uc.prezime,&uc.opr,&uc.neorp);
if(fp==NULL){
printf("n Greška pri otvaranju datoteke");
exit(1);}
fwrite(&uc,sizeof(struct ucenik),1,fp);}
fclose(fp);
fp=fopen("IZOSTANCI.TXT","r");
if(fp==NULL){
printf("n Greška pri čitanju datoteke");
exit(1);
}
printf("n Učenici s više od 30 sati izostanaka su: ");
for(i=0;i<10;i++){
fread(&uc,sizeof(struct ucenik),1,fp);
if(uc.neopr+uc.opr>30)
printf("n %s %s %d %d",uc.ime,uc.prezime,uc.opr,uc.neopr);
}
pr=zb/10;
printf("n Prosječan broj izostanaka po učeniku je: %f",pr);
flose(fp);
} |
| | |
![]() |
| Tagovi: datoteke, programiranje c |
| Broj korisnika koji trenutno prate ovu Temu: 1 (0 članova i 1 gosta) | |
| Opcije Teme | |
| |
Slične Diskusije | ||||
| Tema | Pokretač teme | Forum | Odgovora | Zadnja poruka |
| Instalacija PHP Nuke Portala | -Neno- | Tutoriali i Trikovi | 6 | 06-05-07 10:45 |
| Tips & Tricks za Siemens SL45 | Kristijan | Mobiteli | 0 | 26-10-05 23:19 |
| Sistemske datoteke u dos-u i windowsima | Kristijan | Računala | 0 | 21-10-05 16:34 |
| Windows NT Boot Proces | Kristijan | Računala | 0 | 21-10-05 16:17 |
| Zaštita od parazita pomoću datoteke HOSTS | Kristijan | Savjeti i Trikovi XP | 0 | 30-09-05 15:43 |
Trenutno vrijeme na forumu: 20:20.













