Professional Documents
Culture Documents
Uvod U Programiranje Predavanja 9
Uvod U Programiranje Predavanja 9
:
.
.
3
/
. ()
/
(reading)
(writing) .
:
,
5
().
(\n) .
()
(,
.).
(),
.
6
.
.
().
/
#include<stdio.h>
:
10
/
.
,
,
...
FILE.
11
FILE
struct _iobuf
{
char _ptr;
int
_cnt;
char *_base;
int
_flag;
int
_file;
} FILE;
12
/*
/*
/*
/*
/*
,
.
( )
.
.
13
fopen(putanja i ime fajla,mod_rada);
r (read) . .
w (write) .
, .
a (append), .
.
r+ .
.
w+ .
.
.
a+ .
.
.
14
b.
:
"rb"
"wb"
"ab"
"rb+ "wb+ "ab+"
15
()
.
:
int fclose(FILE *ptr_fajl);
fclose :
0
.
16
#include <stdio.h>
main( )
{
FILE *ptr_file1, *ptr_file2 ;
int i;
ptr_file1=NULL;
ptr_file2=NULL;
/* Otvori za citanje */
ptr_file1 = fopen("data1.txt", "r" )
if(ptr_file1 == NULL )
printf( "Fajl NIJE otvoren\n" );
else
printf( "\nFajl je otvoren \n" );
17
fgetc
. :
19
fgetc
#include <stdio.h>
main( )
{
FILE *ptr_ulaz;
char buffer[81];
int i, ch;
buffer[i] = '\0';
printf( "%s\n", buffer );
fclose( ptr_ulaz );
}
ptr_ulaz=fopen("opis.txt","r");
for(i=0; (i < 80 ); i++ )
{
ch = fgetc( ptr_ulaz );
buffer[i] = (char)ch;
}
20
fputc
fputc
.
int fputc( int c, FILE *ptr_fajl );
EOF .
21
fputc
#include <stdio.h>
void main( void )
{
FILE *ptr_out;
char niz[] = "Ovo je primer za fputc!\n";
int i;
ptr_out = fopen( "upis.txt", "w" )
i=0;
while(niz[i]!= '\0')
{
fputc(niz[i] , ptr_out )
i++;
}
}
22
fgets
.
fgets
(\n) n-1 .
fgets( char *niz, int n, FILE *p_fajl);
NULL .
23
fgets
#include <stdio.h>
void main( void )
{
FILE *ptr_ulaz;
char niz[50];
ptr_ulaz = fopen("ulaz.txt", "r")
fgets( niz, 40, ptr_ulaz )
printf( "%s\n", niz);
fclose( ptr_ulaz);
}
Ovo
je
primer
za
funkciju
fgets.
U
ovom
24
fputs
fputs
.
fputs(char *niz, FILE *ptr_fajl );
EOF .
25
#include <stdio.h>
void main( void )
{
FILE *ptr_out;
char niz[] = "Ovo je primer za fputs!";
ptr_out = fopen("upis.txt", "w")
fputs(niz, ptr_out);
fclose(ptr_out);
}
26
printf scanf.
fprintf
fscanf
B
, ,
.
27
#include <stdio.h>
FILE *ptr_fajl;
void main( void )
{
int
i = 10;
double fp = 1.5;
char
niz[] = "Ovo je jedan niz podataka";
char
karakter = '\n';
ptr_fajl = fopen( "izlaz.txt", "w" );
fprintf( ptr_fajl, "%s%c", niz, karakter );
fprintf( ptr_fajl, "%d\n", i );
fprintf( ptr_fajl, "%f\n", fp );
fclose( ptr_fajl );
}
28
fwrite
fwrite(void *bafer,int velicina,int broj,FILE
*ptr_ime);
fwrite (ptr_ime)
broj .
(velicina)
(bafer).
.
29
#include <stdio.h>
void main( void )
{
FILE *ptr_izlaz;
list[]={1,2,3,4,5,16,7,683,9,10,11,12,13,14};
ptr_izlaz = fopen("izlaz.txt","wb")
fwrite( list, sizeof( int ), 10, ptr_izlaz );
fclose( ptr_izlaz);
}
30
fread
fread(void *bfer, int velicina,
int broj, FILE *ptr_ime);
fread (ptr_ime)
broj velicina
(bfer).
.
31
...
ptr_ulaz = fopen( "izlaz.txt", "rb" )
fread(list2, sizeof(int), 10, ptr_ulaz);
printf( "Sadrzaj niza list2 je \n");
for(i=0; i<10;i++)
printf( "%d ",list2[i]);
fclose( ptr_ulaz );
...
1 2 3 4 5 16 7 683 9 10
32
fseek
fseek( FILE *ptr_ime,
long offset, int origin );
origin
SEEK_CUR:
SEEK_ND:
SEEK_SET:
33
ftell
ftell
. :
long ftell( FILE *ptr_ime);
34
feof
feof
.
int feof(FILE *ptr_ime);
0
.
35
38
int ch; ch = getc( input_file );
/* assigns character to ch */
39
Kada se rad sa fajlom zavri, potrebno je zatvoriti taj
fajl, pre zavretka rada programa.
Ovo se radi da bi operativni sistem oslobodio sve
resurse koje je rezervisao za fajl: memoriju, bafere i
slino,
Za ovaj proces je zaduena funkcija fclose(), kojoj se
prosleuje pokaziva na odreeni fajl kao argument.
fclose( input_file );
fclose( output_file );
40
41
#include <stdio.h>
main() /* FCOPY.C */
{ char in_name[25], out_name[25];
FILE *in_file, *out_file, *fopen ();
int c;
printf("File to be copied:\n");
scanf("%24s", in_name);
printf("Output filename:\n");
scanf("%24s", out_name);
in_file = fopen ( in_name, "r");
if( in_file == NULL )
printf("Cannot open %s for reading.\n", in_name);
else
{ out_file = fopen (out_name, "w");
if( out_file == NULL )
printf("Can't open %s for writing.\n",out_name);
else {
while( (c = getc( in_file)) != EOF ) putc (c, out_file);
putc (c, out_file); /* copy EOF */
printf("File has been copied.\n");
fclose (out_file); } fclose (in_file); } }
42
fprintf() i fscanf()
fprintf() i fscanf() rade isto kao i printf() i
scanf(), osim to rade sa fajlovima.
Proui ta e da uradi:
fprintf(output_file, "Now is the time for
all..\n");
fscanf(input_file, "%f", &float_value);
43
open()
#include <fcntl.h>
int open( char *filename, int access, int permission );
read()
#include <fcntl.h>
int read( int handle, void *buffer, int nbyte );
ita n bajtova fajla na koji ukazuje handle, i
smeta u bafer.
Vraa broj proitanih bajtova, 0 ako je na kraju
fajla, i -1 u sluaju greke.
47
write()
#include <fcntl.h>
int write( int handle, void *buffer, int nbyte );
Funkcija upisuje n bajtova iz bafera u fajl na
koji ukazuje handle.
Vraa broj upisanih bajtova, ili -1 ukoliko je
dolo do greke.
48
close()
#include <fcntl.h>
int close( int handle );
Ova funkcija zatvara fajl na koji upuuje
handle.
Funkcija vraa 0 ako je fajl uspeno
zatvoren, i -1, ako je dolo do greke.
49