Professional Documents
Culture Documents
Datoteke - Teorija I Zadaci!!!!!!!
Datoteke - Teorija I Zadaci!!!!!!!
Datoteke - Teorija I Zadaci!!!!!!!
Svaka datoteka koja se u programu koristi ( za čitanje ili za upis) mora da se otvori
pre nego što joj se prvi put pristupi.
Funkcija za otvaranje datoteke:
pokdat=fopen(char* ime_datoteke, char* režim)
Funkcija fopen() vraća pokazivač na datoteku koja je otvorena, ili NULL ako
datoteka nije mogla da se otvori.
pr. pokdat = fopen(„prva“,“r“);
pr. if ( ( pokdat = fopen(„prva“, „r“ ) )== NULL ) printf(“Datoteka nije korektno
otvorena\n”);
#include <stdio.h>
main() {
FILE *pokf;
char ime[10], pol;
int god, i;
float p;
pokf=fopen(„Podaci.txt“,“w“); //kreiranje novog fajla i upis jednog
reda//
fprintf( pokf, „Milan M 1990 4.75“ );
fclose (pokf);
}
#include <stdio.h>
main() {
FILE *pokf;
char ime[10],pol;
int god, i, n;
float p;
#include <stdio.h>
main() {
FILE *pokf;
char ime[10],pol;
int god, i, n, br;
float p;
#include <stdio.h>
main() {
FILE *pokf;
char ime[10],pol;
int god, i, n, b1=0, b2=0;
float p;
while (feof(pokf)==0) {
fscanf (pokf,“%s %c %d %f“, &ime, &pol, &god, &p);
if (pol==’Z’) b1++;
if (p>=4.50 ) b2++; }
fclose(pokf);
printf(„Broj osoba zenskog pola: %d \n“,b1);
printf(„Broj odlicnih: %d\n“,b2);
}
Program kojim se vrsi šifriranje podataka postojeće datoteke tekst.txt (sadrži
samo velika slova), tako što se svako slovo zamenjuje narednim ASCII znakom (
slovo Z zameniti sa A).
#include<stdio.h>
main()
{
int c;
FILE *prva,*druga;
prva=fopen(„tekst.txt“,“r“);
druga=fopen(„sifra.txt“,“w“);
while ((c=fgetc(prva))!=EOF)
{
if (‘A'<=c&&c<‘Z’) c++;
if(c==’Z’) c=’A’;
fputc(c,druga);
}
fclose(prva);
fclose(druga);
}
fclose (f);
}
Za prekid unosa podataka o studentima koristiti kombinaciju Ctrl+z ili Ctrl+c.
#include<stdio.h>
struct student {
char ime[15];
char prezime[20];
int br;
};
void sort(student s[],int n) {
int i,j;
student p;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(s[i].br<s[j].br)
#include
int main() {
int x;
FILE *ulaz, *izlaz;
ulaz=fopen(„brojevi.txt“,“r“);
izlaz=fopen(„pozitivni.txt“,“w“);
while (!feof(ulaz))
{
fscanf(ulaz,“%d“,&x);
if (x>0) fprintf(izlaz,“%d „, x);
}
fclose(ulaz);
fclose(izlaz);
}
#include
main(){
int n=0, i, j, box;
float sv;
FILE *ulaz, *izlaz;
int x[100];
ulaz=fopen(„brojevi.txt“,“r“);
izlaz=fopen(„niz.txt“,“w“);
while (!feof(ulaz))
{
fscanf(ulaz,“%d“,&x[n]);
n++;
}
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++) if (x[i]>x[j])
{
box=x[i]; x[i]=x[j]; x[j]=box;
}
for (i=0;i<n;i++)
fprintf(izlaz,“%d \n“,x[i]);
fprintf(izlaz, „Ukupno ih ima:\n“);
fprintf(izlaz, „%d“, n);
fclose(ulaz);
fclose(izlaz);
}
Primer.
#include<stdio.h>
#include<string.h>
#include<math.h>
struct grupa {
char ime[15];
float ocena;
int brn;
};
main() {
FILE *f;
struct grupa x[35],pom;
int i,n=0,j;
char dn[3][35];
f=fopen(„grupa1.txt“, „r“);
while(!feof(f)) {
fscanf(f,“%s %f %d“,&x[n].ime ,&x[n].ocena ,&x[n].brn);
n++;
}
fclose(f);
f=fopen(„grupa2.txt“, „r“);
while(!feof(f)) {
fscanf(f,“%s %f %d“,&x[n].ime ,&x[n].ocena ,&x[n].brn);
n++;
}
fclose(f);
f=fopen(„grupa3.txt“, „r“);
while(!feof(f)) {
fscanf(f,“%s %f %d“,&x[n].ime ,&x[n].ocena ,&x[n].brn);
n++;
}
fclose(f);
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(x[i].ime, x[j].ime)>0)
{
pom=x[i];
x[i]=x[j];
x[j]=pom;
}
for(i=0;i<n;i++)
if(x[i].brn < 5) strcpy(dn[i],“da“);
else
strcpy(dn[i],“ne“);
f=fopen(„izvestaj.txt“,“w“);
for(i=0;i<n;i++)
fprintf(f,“%s %.f %s\n“,x[i].ime, x[i].ocena, dn[i]);
fclose(f);
}