Lecture 14
- 3. ÔÀÉË ÍÝÝÕ
3
Ôàéëààñ óíøèõ, ôàéëä áè÷èõ ¿éëäýë ã¿éöýò-
ãýõýýñýý ºìíº òóõàéí ôàéëûã íýýõ õýðýãòýé.
Ôàéëûã íýýõ ¿éëäýë íü òóõàéí ôàéëòàé
àæèëëàõàä øààðäëàãàòàé ìýäýýëýë, á¿òö¿¿äèéã
¿¿ñãýäýã áà ýíý íü ¿éëäëèéí óäèðäëàãûí àñóóäàë
áîëíî.
Óíøèõ,áè÷èõ ¿éë àæèëëàãààíä àøèãëàãäàõ áóôåð
Óíøèõ, áè÷èõ èäýâõòýé áàéðëàë
Àëäààíû íºõöºë, áàéäàë, òºëºâ
Ôàéëûí àòòðèáóòóóä, áàéðøëûí ìýäýýëýë
- 4. ÔÀÉË ÍÝÝÕ
4
Ñè õýëýíä ôàéë íýýäýã ñòàíäàðò ôóíêö
áàéäàã.
Áè÷èãäýõ õýëáýð :
FILE *fopen(char *name, char *mode)
name - ôàéëûí çàì íýð
mode - ôàéëûí íýýõ òºëºâ
Æèøýý :
f = fopen(“c:example.dat”,”rw”);
- 5. FILE Á¿ÒÝÖ
fopen ôóíêöûã äóóäàõàä çààã÷ á¿òýö áóöààäàã áà
ýíý á¿òýö íü òóõàéí ôàéëûí òóõàé ìýäýýëëèéã
àãóóëæ áàéäàã.
FILE *f;
f = fopen(“c:example.dat”,”rw”);
ªºðººð õýëáýë ôàéëûã íýýñíèé äàðàà òóõàéí
ôàéëòàé àæèëëàõ ¿éë àæèëëàãààíä FILE òºðëèéí
ýíý õóâüñàã÷ àøèãëàãääàã.
5
- 6. ÆÈØÝÝ
#include<stdio.h>
FILE *f; char s[100];
main()
{ f=fopen("noname.c","rt+"); fscanf(f,"%s",s);
printf("nBUFFER : %snn",f->buffer); getch();
printf("nPOSITIN: %snn",f->curp);
switch(f->flags)
{ case _F_READ: printf(" Read-only file"); break;
case _F_ERR: printf(" Error indicator"); break;
case _F_EOF: printf(" EOF indicator"); break;
} fclose(f);
}
6
- 7. ÔÀÉË ÍÝÝÕ - Ҫ˪Â
fopen ôóíêöýýð ôàéë íýýõèéí òóëä ÿìàð áàéäëààð
òóõàéí ôàéëûã íýýõ âý ãýäýã òºëâèéã òîäîðõîéëæ ºãºõ
õýðýãòýé.
Òºëâèéã “” õààëòàíä çààæ ºãºõ áà ýíä äîîðõ
òºëºâ¿¿äýýñ çààæ ºãíº.
r - Ôàéëûã çºâõºí óíøèõààð íýýõ
( Ôàéëä áè÷èëò õèéõã¿é, óíøèæ ë áîëíî. )
w - Õýðýâ óã òîäîðõîéëñîí íýðòýé ôàéë áàéõã¿é
áîë ¿¿ñãýíý, áàéâàë áè÷èõýýð íýýõ áîëîâ÷
ôàéëûí äîòîðõè àãóóëãà óñòàíà !!! )
7
- 8. Ҫ˪Â
a - Ôàéëûí òºãñãºëä ë áè÷èëò õèéõýýð íýýõ
(Õýðýâ ôàéë áàéõã¿é áîë ¿¿ñãýí áè÷èõýýð íýýõ)
+ - Ôàéëä óíøèëò/áè÷èëò õèéõýýð õàíäàõ
( ¯ðãýëæ õîñëîí õýðýãëýãääýã )
r+ - Ôàéëä çàñâàð õèéõýýð íýýõ
w+ - Óíøèæ, áè÷èõýýð øèíý ôàéë íýýõ
( Õýðýâ ôàéë áàéâàë, äîòîðõ íü óñòàíà. )
b - Ôàéëûã õî¸ðòûí ãîðèìä íýýõ
t - Ôàéëûã òåêñò ãîðèìä íýýõ
8
- 9. ÀËÄÀÀ ØÀËÃÀÕ
Ôàéëòàé àæèëëàõäàà òóõàéí ¿éëäýë õýðõýí çºâ
ã¿éöýòãýãäýæ áàéãàà , àëäàà ãàðñàí ýñýõèéã øàëãàæ
áàéõ ¸ñòîé. Ôàéë íýýõ ¿éëäýëä õýðâýý ôàéë
àìæèëòã¿é íýýãäñýí áîë fopen ôóíêö NULL óòãà
áóöààäàã.
Æèøýý :
FILE *f;
f=fopen("noname.c","rt+");
if( f==NULL )
{ printf(“ Ôàéë íýýõýä àëäàà ãàðëàà. n”); exit(1); }
9
- 10. ÀËÄÀÀ ØÀËÃÀÕ - FERROR
ÔÓÍÊÖ
Ôàéëòàé àæèëëàõàä àëäàà ãàðñàí ýñýõèéã
ferror ôóíêöýýð øàëãàæ áîëíî.
Æèøýý :
FILE *f;
f=fopen("noname.c","rt+");
if( ferror(f))
{ printf(“ Ôàéë íýýõýä àëäàà ãàðëàà. n”); exit(1); }
Õýðýâ àëäàà ãàðñàí áîë ýíý ôóíêö òýãýýñ
ÿëãààòàé óòãà áóöààäàã.
10
- 11. ÓÐÜÄ÷ÈËÀÍ ÍÝÝÃÄÑÝÍ
ÔÀÉËÓÓÄ
Òàíû ïðîãðàì ýõýëæ àæèëëàõàä äàðààõ
ôàéëóóä óðüä÷èëààä íýýãäñýí áàéäàã. ª.õýëáýë
øóóä àøèãëàæ áîëîõ ôàéëóóä ãýñýí ¿ã.
stdin Ñòàíäàðò îðîëòûí òºõººðºìæ
stdout Ñòàíäàðò ãàðàëòûí òºõººðºìæ
stderr Àëäàà ãàðãàõ ñòàíäàðò òºõººðºìæ
stdaux Ñòàíäàðò aux òºõººðºìæ
stdprn Ñòàíäàðò ïðèíòåð
11
- 12. ÓÐÜÄ÷ÈËÀÍ ÍÝÝÃÄÑÝÍ
ÔÀÉËÓÓÄ
Æèøýý :
fprintf(stdout,“ Äýëãýöýíä õýâëýâ. ”);
fprintf(stderr,“ Àëäàà ãàðãàõ òºõººðºìæèä àëäààíû
ìýäýýëýë õýâëýâ. ”);
fprintf(stdprn,“ Ñòàíäàðò ïðèíòåð òºõººðºìæèä
ìýäýýëýë õýâëýâ. ”);
fscanf(stdin, “%s”,Name);
/* Ñòàíäàðò îðîëòûí òºõººðºìæ áóþó ãàðààñ
ìýäýýëýë óíøèæ áàéíà. */
12
- 13. ÔÀÉË ÕÀÀÕ
Õýðýâ ôàéëòàé àæèëëàõ ¿éë àæèëëàãààãàà äóóññàí
áîë ôàéëàà çàéëøã¿é õààæ áàé !
Ôàéëûã õààõäàà fclose ôóíêöûã àøèãëàíà.
Æèøýý :
FILE *f;
f=fopen("noname.c","rt+");
. . .
fclose(f);
Õààõ ¿éë àæèëëàãàà íü òóõàéí ôàéëòàé àæèëëàõàä
øààðäàãäàæ áàéñàí îðîí çàé, íººö¿¿äèéã ÷ºëººëæ
áàéãàà ¿éëäýë þì.
13
- 14. ÔÀÉËÀÀÑ ÓÍØÈÕ
Ôàéëààñ ºãºãäºë óíøèõûí òóëä äàðààõ ôóíêöóóäûã
àøèãëàæ áîëíî.
fscanf - scanf ôóíêöòýé àäèëààð áóþó
ôîðìàòëàñàí õýëáýðýýð ôàéëààñ óíøèõ
fread - ªãºãäëèéí õýìæýýã çààæ ºãºí óíøèõ
Èõ õýìæýýíèé ºãºãäºë óíøèõàä àøèãëàãäàíà.
fgets - Ôàéëààñ òýìäýãò ìºð óíøèõ
fgetchar, fgetc - Ôàéëààñ íýã òýìäýãò óíøèõ
14
- 15. ÆÈØÝÝ :
FILE *f; char s[100];
int mm,dd,yy; int A[20];
main()
{ f=fopen("mydoc.txt","rt+");
fscanf(f,"%s",s); /* Òýìäýãò ìºð óíøèõ */
fscanf(f,”%d/%d/%d”,mm,dd,yy); /* Îí ñàð */
fread(A,sizeof(int),20,f);
/* f ôàéëààñ int òºðºëòýé 20 ýëåìåíòèéã À ìàññèâò
óíøèõ */
fclose(f); }
15
- 16. ÔÀÉËÄ ÁÈ÷ÈÕ
Ôàéëä ºãºãäºë áè÷èõèéí òóëä äàðààõ ôóíêöóóäûã
àøèãëàæ áîëíî.
fprintf - printf ôóíêöòýé àäèëààð áóþó
ôîðìàòëàñàí õýëáýðýýð ôàéëä áè÷èõ
fwrite - ªãºãäëèéí õýìæýýã çààæ ºãºí áè÷èõ
Îëîí ýëåìåíò áè÷èõýä àøèãëàãäàíà.
fputs - Ôàéëä òýìäýãò ìºð áè÷èõ
fputchar, fputc - Ôàéëä íýã òýìäýãò áè÷èõ
16
- 17. ÆÈØÝÝ
Ôàéëààñ ºãºãäºë óíøèõ, áè÷èõäýý ¿éëäýë çºâ ã¿éöýòãýãäñýí
ýñýõèéã çàéëøã¿é øàëãàæ áàé !
FILE *f; int A[200];
main()
{ f=fopen("mydoc.txt","rt+");
if(fwrite(A,sizeof(int),200,f)==200)
printf(“ Áè÷èëò àìæèëòòàé õèéãäëýý.n ”);
else printf(“ Àëäàà ãàðëàà n ”);
fclose(f);
}
17
- 18. ÔÀÉËÛÍ ÇÀÀÃ÷
Òóõàéí ôàéëòàé õàíäàæ àæèëëàõàä õýðýãëýãääýã
íýã ÷óõàë îéëãîëò íü ôàéëûí çààã÷ þì.
Óíøèõ, áè÷èõ ¿éëäýë õèéãäýõ èäýâõòýé
áàéðëàëûã ôàéëûí çààã÷ òîäîðõîéëíî.
Óíøèõ , áè÷èõ ¿éëäýë õèéãäñýíèé äàðàà ôàéëûí
çààã÷ øèëæèæ áàéäàã. Çààã÷ íü ôàéëààñ õýäýí
byte óíøèæ áè÷ñýí õýìæýýãýýð øèëæèíý.
Ôàéëûí çààã÷èéí áàéðëàëûã óíøèæ, ìºí ò¿¿íèéã
øèëæ¿¿ëæ áîëíî.
18
- 19. 19
feof ôóíêö
Ýíý ôóíêöûã àøèãëàí ôàéëûí çààã÷ ôàéëûí
òºãñãºëä î÷ñîí ýñýõèéã øàëãàíà.
ªãºãäºë óíøèæ áàéõ ¿åä ýíý íü çàéëøã¿é
õèéãäýõ ¸ñòîé øàëãàëò áàéäàã.
f=fopen("mydoc.txt","rt+");
while( !feof(f) ) /* Ôàéëûí òºãñãºë øàëãàõ */
{ fscanf(f,"%d ",&s[i++]); /* Òîî óíøèõ */ }
fclose(f);
Õýðýâ çààã÷ ôàéëûí òºãñãºëä õ¿ðñýí áîë
ò¿¿íýýñ öààø óíøèõ ºãºãäºë áàéõã¿é ãýñýí ¿ã.
- 20. 20
Ôàéëûí çààã÷èéí áàéðëàë
òîãòîîõ
Ôàéëûí çààã÷èéí áàéðëàëûã ýäãýýð
ôóíêöóóäûã àøèãëàí òîãòîîíî.
int fgetpos(FILE *fp, fpos_t *pos)
long ftell(FILE *fp);
Æèøýý :
long pos;
pos=ftell(f);
printf(“ File pointer position : %ld n”,pos);
- 21. 21
Ôàéëûí çààã÷èéã øèëæ¿¿ëýõ
Ôàéëûí çààã÷èéã äàðààõ ôóíêöóóäûã àøèãëàí
øèëæ¿¿ëäýã.
int fsetpos( FILE *fp, const fpos_t *pos);
int fseek(FILE *fp, long offset,int whence);
Æèøýý :
fseek(f,1000,SEEK_SET);
/* Ôàéëûí ýõíýýñ 1000-ð áàéðëàëä */
fseek(f,1000,SEEK_CUR);
/* Èäýâõòýé áàéðëàëààñ õîéø 1000-ð áàéðëàëä */
fseek(f,1000,SEEK_END);
/* Ôàéëûí òºãñãºëººñ óðàãø 1000-ð áàéðëàëä */