SlideShare a Scribd company logo
1 of 22
Download to read offline
Файлын
оролт гаралт
Lecture 9
Programming Language
Агуулга:
 <stdio.h>толгой файл
 Файлтай ажиллах үед гарсан алдааг илрүүлэх
 Дараалласан хандалттай файл
 Файлийг боловсруулах
Файл гэж юу вэ?
 Файл/File/ гэдэг мэдээллийн сан/архив гэсэн утгатай
англи үг юм.
 Файл гэдэг нь гадаад зөөгч дээр мэдээлэл хадгалах
зорилгоор үүссэн тодорхой нэрлэгдсэн байр юм.
Файл гэж юу вэ?
 Мэдээллийн диск дээрх нэрлэгдсэн мужийг физик файл
гэдэг. Гарнаас мэдээлэл оруулахад удаан, дэлгэсэнд
гаргасан мэдээлэл хадгалагддаггүй зэрэг нь мэдээллийг
диск дээр хадгалах шаардлагыг бий болгоно. Мэдээллийг
диск дээр нэг удаа хадгалаад дараа нь дахин дахин уншиж
ашиглах, засварлах боломжтой.
 Мэдээллийг диск дээр файл хэлбэрээр хадгална.
Мэдээллийг дискэд гаргах (Output), дискнээс оруулах
(Input) процессийг урсгал( stream) гэдэг.
 Програмд хэрэглэгдэж байгаа файлын төрлийн хувьсагч
буюу физик файлын програм дахь тодорхойлолтыг
(төлөөлөгчийг) логик файл гэдэг. Програмд логик файл нь
ямар нэг төрөлтэй (эсвэл төрөлгүй) файлын төрлийн
хувьсагч байдлаар тодорхойлогддог.
Физик файлын бүтэц
Байт Байт Байт . . . Байт Байт EOF
Физик файлын бүтэц энгийн байтуудын дараалал
байдалтайгаар хадгалагддаг.
Логик файлын бүтэц
 Логик файлын бүтэц-ийг физик файлын бүтцийг
харах хэв загвар гэж үзэж болно. Програмчлалын
хэлэнд энэ хэв загвар нь файлын агуулгад хандах
өгөгдлийн төрөл болдог.
 Файлын элементийн тоо нь тухайн агшинд
тодорхойгүй байдаг ба үүнийг тодорхойлохдоо
файлын төгсгөлд EoF буюу ASCII 26 кодтой тэмдэгтийг
бичиж өгдөг. Файлын элементийн тоог програмын
явцад өөрчилж болно.
<stdio.h>толгой файл
Си хэлэнд оролт гаралтын функцуудыг stdio.h толгой файлд
тодорхойлсон байдаг.
Файлыг:
1.Текст файл
2.Бинар файл гэж хоѐр ангилна.
 Тэмдэгт өгөгдөл агуулсан файлыг текст файл, бусад
төрлийн файлыг бинар файл гэж нэрлэнэ.
Текст файлыг ямар нэг editor ашиглан үүсгээд, нэр
өргөтгөлийг нь өгөөд хадгалж болно. Текст файл нь
тэмдэгтүүдийн мөрийг агуулах ба дэс дараалсан
хандалттай файл юм. Түүний мөрийн төгсгөлд ‘n’ тэмдэг,
файлын төгсгөлд ASCII 26 кодтой Ctrl+z тэмдэгт байрлана.
<stdio.h>толгой файл
Бинар файл нь шууд хандалттай файл юм.
Иймд файлыг хандах аргаар нь:
Дэс дараалсан хандалттай
Шууд хандалттай гэж 2 ангилдаг.
Хандах гэдэг нь мэдээллийг унших, бичих процесс юм.
Файлын эхнээс байт байтаар хандахыг дэс дараалсан
,шаардлагатай элементэд шууд хандахыг шууд
хандах гэдэг.
Файлд хандахад:
1.Файлын нэр буюу физик файлын нэр
2.Файлын төрлийн хувьсагчийн нэр буюу логик файлын
нэр хэрэглэгдэнэ.
Файлын төрлийн хувьсагчийн нэрийг файлаас барих
бариул(handle) гэдэг. Програмаас файлыг нээмэгц
нээсэн функц нь уг файлын дотоод нэрийг буцаана. Уг
дотоод нэрийг ашиглан файлд бичих, файлаас унших,
файлыг хаах гэх мэт үйлдлийг хийнэ. Дотоод нэр нь
файлын хэмжээ(байт), байрлал(хаана байгаа) зэрэг
мэдээллийг агуулна. Дотоод нэр нь файл төрлийн
хувьсагч байна. Жишээ нь: FILE *f, *fhandle гэх мэт.
Файлтай ажиллах
 Файлтай ажиллахад
1.Файл нээх,
2.Файлаас мэдээлэл унших,
3.Файлд мэдээлэл бичих,
4.Файл хаах гэсэн дөрвөн үйлдэл хийнэ.
Си хэлэнд файлтай ажиллах ихэнх функц f үсгээр
эхэлсэн байдаг.
Файл нээх
 Файлыг fopen функцаар нээнэ. Энэ функц нь FILE*
төрлийн заагч буюу нээгдсэн файлын дугаарыг
буцаадаг. Файл амжилттай нээгдсэн бол тэгээс
ялгаатай утга буцаана.
 <файлын_логик_нэр>=fopen(<файлын_
физик_нэр>,<нээх_горим>);
 Үүнд: <файлын_физик_нэр> - файлын нэр болох
тэмдэгт төрлийн заагч, нээх горим дорх хандах
горим юм
Файл нээх
 Үүнд: Файлыг нээх горим:
Горим Зорилго
“r” Байгаа файлыг уншихаар нээнэ.
“w” Бичихээр шинэ файл нээх. (Ижил нэртэй файл байвал устгаад)
“a” Файлын төгсгөлд мэдээлэл нэмж бичихээр нээх. Хэрвээ файл
байхгүй бол шинээр нээнэ.
“r+” Өмнө байгаа файлыг унших ба нэмж бичихээр нээх.
“w+” Файлыг унших ба нэмж бичихээр нээх. Ижил нэртэй файл байвал
мэдээлэл нь устана.
“a+” Файлын төгсгөлд мэдээлэл нэмж бичих уншихаар нээх. Файл байхгүй
бол шинээр нээнэ.
“rb” Бинар файлыг уншихаар нээх. (Шууд хандалттай файл)
“wb” Бинар файлыг бичихээр нээх. (Шууд хандалттай файл)
“ab” Бинар файлд мэдээлэл нэмж бичихээр нээх. (Шууд хандалттай
файл)
Файл нээх
 Жишээ: f=fopen("score.txt","r"); энэ нь score.txt файлыг
уншихаар нээнэ.
 Хэрэв байхгүй файлыг нээхээр оролдвол fopen
функц макро NULL утгыг буцаадаг. Үүнийг ашиглан
нээх үйлдэл амжилттай болсон эсэхийг хянана. Энэ
үед perror функц ашиглан ямар алдаа гарч байгааг
мэдэж болно. Хэрэв алдаа гарвал програмын
биелэлтийг exit функцээр зогсооно.
Жишээ нь:
FILE *f;
if ((f=fopen("score.txt","r"))==NULL)
{ perror(“score.txt fopen");
exit(1); /* stdlib.h санд байдаг функц */
}
Энэ жишээнд score.txt файлыг цаашид f функц
төлөөлнө.
Файл хаах
 Файлыг fclose функцаар хаана.
fclose(<файлын_логик_нэр>);
 Энэ функц файл амжилттай хаагдвал тэг утга, үгүй
бол тэг биш EOF утга буцаана. EOF нь End of File –
файлын төгсгөлийг заасан тогтмол.
 Жишээ нь:
if (fclose(f)==EOF)
{ perror(“score.txt fclose");
exit(1); /* stdlib.h санд байдаг функц */
}
Файлтай ажиллахдаа дээрх хоѐр үйлдлийг заавал хийх
хэрэгтэй.
Унших ба бичих үйлдэл.
 Текст файл stream-аас char-тэмдэгт эсвэл buffer-тэмдэгт
мөр унших, эсвэл түүнд бичих функцууд:
 fgetc(FILE *stream) - Файлаас нэг тэмдэгт уншиж,
амжилттай бол уншсан тэмдэгтийг үгүй бол EOF утга
буцаана.
 getc(FILE *stream) - Файлаас мөн адил нэг тэмдэгт
уншина
 fgets(buffer, n byte, FILE *stream) - Файлаас n урттай(byte)
мөр эсвэл мөр шилжих тэмдэгт хүртлэх мөрийг уншиж
buffer-буфер луу бичнэ. Тэмдэгт мөрийн төгсгөлд ASCII 0
тэмдэгтийг бичдэг. Амжилттай ажилласан бол бичсэн
тэмдэгт мөрийн хаягийг, алдаа гарсан эсвэл файлын
төгсгөлд хүрсэн бол NULL утга буцаана.
Унших ба бичих үйлдэл.
 fputc(char, FILE *stream) - Файлд нэг тэмдэгт(char)-ийг
бичнэ. Функц амжилттай бол char тэмдэгтийг үгүй
бол EOF утга буцаана.
 putc(char, FILE *stream) - Файлд мөн адил нэг тэмдэгт
бичнэ
 fputs(buffer, FILE *stream) - Файлд buffer-буферийн
мөрийг бичнэ. Амжилттай ажилласан -бол сөрөг биш
бүхэл тоо, алдаа гарсан бол EOF утга буцаана.
Унших ба бичих үйлдэл.
Текст файлд формат хэлбэрээр бичих ба файлаас
формат хэлбэрээр унших функцууд:
 fprintf(FILE *stream, const char *format[, argument, . . . ]);
- stream файлд format-д заасан хэлбэр бүхий
мэдээллийг бичнэ.
 format-мөрөнд бичих мэдээллийн хэвшүүлэлтийг өгөх
ба энэ нь printf() функцынхтай адил (номын хуудас
22-23) байна. Функц амжилттай биелэсэн бол файлд
бичсэн байтын тоо, алдаа гарсан бол EOF утга
буцаана. Жишээлбэл double төрлийн d утгыг файлд
таслалаас өмнө 8 орны зайтай, таслалаас хойш 2
орны нарийвчлалтай бичнэ гэвэл: fprintf(pr, “%8.2t”,d);
гэж өгнө.
Унших ба бичих үйлдэл.
 fscanf(FILE *stream, const char *format[, argument, . . . ]);
- stream файлаас format-д заасан хэлбэр бүхий
мэдээллийг уншина. format-мөрөнд унших
мэдээллийн хэвшүүлэлтийг өгөх ба энэ нь scanf()
функцынхтай адил байна. Функц амжилттай
биелэсэн бол файлаас уншсан байтын тоо, алдаа
гарсан бол EOF утга буцаана.
Жишээ. score.txt файлд хадгалагдсан оюутны
онооны дундажийг хэвлэ.
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{ FILE *fhandle;
if ((fhandle=fopen("score.txt","r"))==NULL)
{ perror("score.txt fopen");
exit(1);
}
int score,too=0,sum=0;
while (!feof(fhandle)&&!ferror(fhandle))
{ fscanf(fhandle,"%d",&score) ;
sum+=score;
too++;
}
printf("dundaj:%dn",sum/too);
if (fclose(fhandle)==EOF)
{ perror("score.txt(fclose)");
exit(1);}
getch();}
Дээрх жишээнд
файлаас мэдээллийг
уншихад хоѐр зүйл
тохиолдож болно.
Уншиж байгаад
файлын төгсгөлд хүрэх
үүнийг feof()
функцаар, алдаа
гарах үүнийг ferror()
функцаар тус тус
хянана.
Эдгээр функц нь тэг
эсвэл тэг биш утга
буцаана.
Файлтай ажиллах
функцуудын ангилал:
 Нээх, хаах:fopen, freopen, fdopen, fflush,
flushall, fileno, fclose, fcloseall
 Мэдээлэл унших, бичих:feof, fgetc,
fgetchar, fgets, fprintf, fputc, fputs
 Файлын заагч(курсор)-ийг удирдах:fgetpos,
fseek, fsetpos, ftell, rewind
 Ажиллаж байх үеийн алдааг хянах:clearerr,
ferror, perror, strerror,
 Файл устгах, нэр өөрчлөх, бусад:remove,
rename, rmtmp, tempnam, tmpfile, tmpnam
Асуулт:
 Нээх, хаах файлууд юу вэ?
 Файлын унших ба бичих үйлдлийн тухай тайлбарлана уу.
 Файлыг хэд ангилдаг вэ?

More Related Content

What's hot

тооллын систем
тооллын системтооллын систем
тооллын системMunkhuu Buyanaa
 
U.cs101 алгоритм программчлал-12
U.cs101   алгоритм программчлал-12U.cs101   алгоритм программчлал-12
U.cs101 алгоритм программчлал-12Badral Khurelbaatar
 
Ogogdliin sangiin zohion baiguulalt lekts
Ogogdliin sangiin zohion baiguulalt lektsOgogdliin sangiin zohion baiguulalt lekts
Ogogdliin sangiin zohion baiguulalt lektsАлдарболд Э.
 
Функцэн цуваа
Функцэн цувааФункцэн цуваа
Функцэн цувааBattur
 
U.cs101 алгоритм программчлал-1(1)
U.cs101   алгоритм программчлал-1(1)U.cs101   алгоритм программчлал-1(1)
U.cs101 алгоритм программчлал-1(1)Badral Khurelbaatar
 
бие даалт № 1 borland c++
бие даалт № 1 borland c++бие даалт № 1 borland c++
бие даалт № 1 borland c++2011bonus
 
Олон хувьсагчтай функцийн нөхцөлт экстремум, интеграл
Олон хувьсагчтай функцийн нөхцөлт экстремум, интегралОлон хувьсагчтай функцийн нөхцөлт экстремум, интеграл
Олон хувьсагчтай функцийн нөхцөлт экстремум, интегралBattur
 
Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудДавталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудБаярсайхан Л
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргуудBayalagmaa Davaanyam
 
U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-2
U.cs101   алгоритм программчлал-2U.cs101   алгоритм программчлал-2
U.cs101 алгоритм программчлал-2Badral Khurelbaatar
 
сүлжээний хичээл
сүлжээний хичээлсүлжээний хичээл
сүлжээний хичээлenhsaran_tsahim
 

What's hot (20)

Pp Lect1 1
Pp Lect1 1Pp Lect1 1
Pp Lect1 1
 
алгоритм 8
алгоритм 8алгоритм 8
алгоритм 8
 
C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1
 
тооллын систем
тооллын системтооллын систем
тооллын систем
 
U.cs101 алгоритм программчлал-12
U.cs101   алгоритм программчлал-12U.cs101   алгоритм программчлал-12
U.cs101 алгоритм программчлал-12
 
It101 lect9
It101 lect9It101 lect9
It101 lect9
 
Ogogdliin sangiin zohion baiguulalt lekts
Ogogdliin sangiin zohion baiguulalt lektsOgogdliin sangiin zohion baiguulalt lekts
Ogogdliin sangiin zohion baiguulalt lekts
 
Лекц №6
Лекц №6Лекц №6
Лекц №6
 
Функцэн цуваа
Функцэн цувааФункцэн цуваа
Функцэн цуваа
 
U.cs101 алгоритм программчлал-1(1)
U.cs101   алгоритм программчлал-1(1)U.cs101   алгоритм программчлал-1(1)
U.cs101 алгоритм программчлал-1(1)
 
бие даалт № 1 borland c++
бие даалт № 1 borland c++бие даалт № 1 borland c++
бие даалт № 1 borland c++
 
Олон хувьсагчтай функцийн нөхцөлт экстремум, интеграл
Олон хувьсагчтай функцийн нөхцөлт экстремум, интегралОлон хувьсагчтай функцийн нөхцөлт экстремум, интеграл
Олон хувьсагчтай функцийн нөхцөлт экстремум, интеграл
 
Programchlaliin c hel
Programchlaliin c helProgramchlaliin c hel
Programchlaliin c hel
 
Давталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогуудДавталттай алгоритмын бодлогууд
Давталттай алгоритмын бодлогууд
 
It101 1
It101 1It101 1
It101 1
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
 
U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3
 
U.cs101 алгоритм программчлал-2
U.cs101   алгоритм программчлал-2U.cs101   алгоритм программчлал-2
U.cs101 алгоритм программчлал-2
 
лекц-2
лекц-2лекц-2
лекц-2
 
сүлжээний хичээл
сүлжээний хичээлсүлжээний хичээл
сүлжээний хичээл
 

Similar to Файлын оролт гаралт

Similar to Файлын оролт гаралт (20)

Lekts 3
Lekts  3Lekts  3
Lekts 3
 
Лекц №14
Лекц №14Лекц №14
Лекц №14
 
lab8
lab8lab8
lab8
 
Lecture file and folder working
Lecture file and folder workingLecture file and folder working
Lecture file and folder working
 
компьютерт мэдээллийг боловсруулах
компьютерт мэдээллийг боловсруулахкомпьютерт мэдээллийг боловсруулах
компьютерт мэдээллийг боловсруулах
 
файлын түүний систем
файлын түүний системфайлын түүний систем
файлын түүний систем
 
Preproc
PreprocPreproc
Preproc
 
файлын замыг тодорхойлох
файлын замыг тодорхойлохфайлын замыг тодорхойлох
файлын замыг тодорхойлох
 
4 angi
4 angi4 angi
4 angi
 
Lecture 12: File Handling
Lecture 12: File HandlingLecture 12: File Handling
Lecture 12: File Handling
 
Lecture2
Lecture2Lecture2
Lecture2
 
Lecture 12 os
Lecture 12 osLecture 12 os
Lecture 12 os
 
03 windows explorer paint
03 windows explorer   paint03 windows explorer   paint
03 windows explorer paint
 
бие даалт
бие даалтбие даалт
бие даалт
 
бие даалт
бие даалтбие даалт
бие даалт
 
бие даалт
бие даалтбие даалт
бие даалт
 
Lab2 windows2
Lab2 windows2Lab2 windows2
Lab2 windows2
 
Lab2 windows2
Lab2 windows2Lab2 windows2
Lab2 windows2
 
Ms word v1[1].0
Ms word v1[1].0Ms word v1[1].0
Ms word v1[1].0
 
Ms word1
Ms word1Ms word1
Ms word1
 

More from Bayalagmaa Davaanyam

Online applications using strong authentication with OTP grid cards
Online applications using strong authentication with OTP grid cardsOnline applications using strong authentication with OTP grid cards
Online applications using strong authentication with OTP grid cardsBayalagmaa Davaanyam
 
Мэдээлэл технологи ашиглан лекцийн үр дүнг дээшлүүлэх асуудал
Мэдээлэл технологи ашиглан лекцийн үр дүнг дээшлүүлэх асуудалМэдээлэл технологи ашиглан лекцийн үр дүнг дээшлүүлэх асуудал
Мэдээлэл технологи ашиглан лекцийн үр дүнг дээшлүүлэх асуудалBayalagmaa Davaanyam
 
Мод, графын ерөнхий зарчим
Мод, графын ерөнхий зарчимМод, графын ерөнхий зарчим
Мод, графын ерөнхий зарчимBayalagmaa Davaanyam
 
Эрэмбэлэлт хайлтын аргууд
Эрэмбэлэлт хайлтын аргуудЭрэмбэлэлт хайлтын аргууд
Эрэмбэлэлт хайлтын аргуудBayalagmaa Davaanyam
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргуудBayalagmaa Davaanyam
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргуудBayalagmaa Davaanyam
 

More from Bayalagmaa Davaanyam (10)

Online applications using strong authentication with OTP grid cards
Online applications using strong authentication with OTP grid cardsOnline applications using strong authentication with OTP grid cards
Online applications using strong authentication with OTP grid cards
 
otp crid cards
otp crid cardsotp crid cards
otp crid cards
 
Social sciences bayalagmaa
Social sciences bayalagmaaSocial sciences bayalagmaa
Social sciences bayalagmaa
 
Мэдээлэл технологи ашиглан лекцийн үр дүнг дээшлүүлэх асуудал
Мэдээлэл технологи ашиглан лекцийн үр дүнг дээшлүүлэх асуудалМэдээлэл технологи ашиглан лекцийн үр дүнг дээшлүүлэх асуудал
Мэдээлэл технологи ашиглан лекцийн үр дүнг дээшлүүлэх асуудал
 
Мод, графын ерөнхий зарчим
Мод, графын ерөнхий зарчимМод, графын ерөнхий зарчим
Мод, графын ерөнхий зарчим
 
Hash function
Hash functionHash function
Hash function
 
C standard library
C standard libraryC standard library
C standard library
 
Эрэмбэлэлт хайлтын аргууд
Эрэмбэлэлт хайлтын аргуудЭрэмбэлэлт хайлтын аргууд
Эрэмбэлэлт хайлтын аргууд
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
 

Файлын оролт гаралт

  • 2. Агуулга:  <stdio.h>толгой файл  Файлтай ажиллах үед гарсан алдааг илрүүлэх  Дараалласан хандалттай файл  Файлийг боловсруулах
  • 3. Файл гэж юу вэ?  Файл/File/ гэдэг мэдээллийн сан/архив гэсэн утгатай англи үг юм.  Файл гэдэг нь гадаад зөөгч дээр мэдээлэл хадгалах зорилгоор үүссэн тодорхой нэрлэгдсэн байр юм.
  • 4. Файл гэж юу вэ?  Мэдээллийн диск дээрх нэрлэгдсэн мужийг физик файл гэдэг. Гарнаас мэдээлэл оруулахад удаан, дэлгэсэнд гаргасан мэдээлэл хадгалагддаггүй зэрэг нь мэдээллийг диск дээр хадгалах шаардлагыг бий болгоно. Мэдээллийг диск дээр нэг удаа хадгалаад дараа нь дахин дахин уншиж ашиглах, засварлах боломжтой.  Мэдээллийг диск дээр файл хэлбэрээр хадгална. Мэдээллийг дискэд гаргах (Output), дискнээс оруулах (Input) процессийг урсгал( stream) гэдэг.  Програмд хэрэглэгдэж байгаа файлын төрлийн хувьсагч буюу физик файлын програм дахь тодорхойлолтыг (төлөөлөгчийг) логик файл гэдэг. Програмд логик файл нь ямар нэг төрөлтэй (эсвэл төрөлгүй) файлын төрлийн хувьсагч байдлаар тодорхойлогддог.
  • 5. Физик файлын бүтэц Байт Байт Байт . . . Байт Байт EOF Физик файлын бүтэц энгийн байтуудын дараалал байдалтайгаар хадгалагддаг.
  • 6. Логик файлын бүтэц  Логик файлын бүтэц-ийг физик файлын бүтцийг харах хэв загвар гэж үзэж болно. Програмчлалын хэлэнд энэ хэв загвар нь файлын агуулгад хандах өгөгдлийн төрөл болдог.  Файлын элементийн тоо нь тухайн агшинд тодорхойгүй байдаг ба үүнийг тодорхойлохдоо файлын төгсгөлд EoF буюу ASCII 26 кодтой тэмдэгтийг бичиж өгдөг. Файлын элементийн тоог програмын явцад өөрчилж болно.
  • 7. <stdio.h>толгой файл Си хэлэнд оролт гаралтын функцуудыг stdio.h толгой файлд тодорхойлсон байдаг. Файлыг: 1.Текст файл 2.Бинар файл гэж хоѐр ангилна.  Тэмдэгт өгөгдөл агуулсан файлыг текст файл, бусад төрлийн файлыг бинар файл гэж нэрлэнэ. Текст файлыг ямар нэг editor ашиглан үүсгээд, нэр өргөтгөлийг нь өгөөд хадгалж болно. Текст файл нь тэмдэгтүүдийн мөрийг агуулах ба дэс дараалсан хандалттай файл юм. Түүний мөрийн төгсгөлд ‘n’ тэмдэг, файлын төгсгөлд ASCII 26 кодтой Ctrl+z тэмдэгт байрлана.
  • 8. <stdio.h>толгой файл Бинар файл нь шууд хандалттай файл юм. Иймд файлыг хандах аргаар нь: Дэс дараалсан хандалттай Шууд хандалттай гэж 2 ангилдаг. Хандах гэдэг нь мэдээллийг унших, бичих процесс юм. Файлын эхнээс байт байтаар хандахыг дэс дараалсан ,шаардлагатай элементэд шууд хандахыг шууд хандах гэдэг.
  • 9. Файлд хандахад: 1.Файлын нэр буюу физик файлын нэр 2.Файлын төрлийн хувьсагчийн нэр буюу логик файлын нэр хэрэглэгдэнэ. Файлын төрлийн хувьсагчийн нэрийг файлаас барих бариул(handle) гэдэг. Програмаас файлыг нээмэгц нээсэн функц нь уг файлын дотоод нэрийг буцаана. Уг дотоод нэрийг ашиглан файлд бичих, файлаас унших, файлыг хаах гэх мэт үйлдлийг хийнэ. Дотоод нэр нь файлын хэмжээ(байт), байрлал(хаана байгаа) зэрэг мэдээллийг агуулна. Дотоод нэр нь файл төрлийн хувьсагч байна. Жишээ нь: FILE *f, *fhandle гэх мэт.
  • 10. Файлтай ажиллах  Файлтай ажиллахад 1.Файл нээх, 2.Файлаас мэдээлэл унших, 3.Файлд мэдээлэл бичих, 4.Файл хаах гэсэн дөрвөн үйлдэл хийнэ. Си хэлэнд файлтай ажиллах ихэнх функц f үсгээр эхэлсэн байдаг.
  • 11. Файл нээх  Файлыг fopen функцаар нээнэ. Энэ функц нь FILE* төрлийн заагч буюу нээгдсэн файлын дугаарыг буцаадаг. Файл амжилттай нээгдсэн бол тэгээс ялгаатай утга буцаана.  <файлын_логик_нэр>=fopen(<файлын_ физик_нэр>,<нээх_горим>);  Үүнд: <файлын_физик_нэр> - файлын нэр болох тэмдэгт төрлийн заагч, нээх горим дорх хандах горим юм
  • 12. Файл нээх  Үүнд: Файлыг нээх горим: Горим Зорилго “r” Байгаа файлыг уншихаар нээнэ. “w” Бичихээр шинэ файл нээх. (Ижил нэртэй файл байвал устгаад) “a” Файлын төгсгөлд мэдээлэл нэмж бичихээр нээх. Хэрвээ файл байхгүй бол шинээр нээнэ. “r+” Өмнө байгаа файлыг унших ба нэмж бичихээр нээх. “w+” Файлыг унших ба нэмж бичихээр нээх. Ижил нэртэй файл байвал мэдээлэл нь устана. “a+” Файлын төгсгөлд мэдээлэл нэмж бичих уншихаар нээх. Файл байхгүй бол шинээр нээнэ. “rb” Бинар файлыг уншихаар нээх. (Шууд хандалттай файл) “wb” Бинар файлыг бичихээр нээх. (Шууд хандалттай файл) “ab” Бинар файлд мэдээлэл нэмж бичихээр нээх. (Шууд хандалттай файл)
  • 13. Файл нээх  Жишээ: f=fopen("score.txt","r"); энэ нь score.txt файлыг уншихаар нээнэ.  Хэрэв байхгүй файлыг нээхээр оролдвол fopen функц макро NULL утгыг буцаадаг. Үүнийг ашиглан нээх үйлдэл амжилттай болсон эсэхийг хянана. Энэ үед perror функц ашиглан ямар алдаа гарч байгааг мэдэж болно. Хэрэв алдаа гарвал програмын биелэлтийг exit функцээр зогсооно.
  • 14. Жишээ нь: FILE *f; if ((f=fopen("score.txt","r"))==NULL) { perror(“score.txt fopen"); exit(1); /* stdlib.h санд байдаг функц */ } Энэ жишээнд score.txt файлыг цаашид f функц төлөөлнө.
  • 15. Файл хаах  Файлыг fclose функцаар хаана. fclose(<файлын_логик_нэр>);  Энэ функц файл амжилттай хаагдвал тэг утга, үгүй бол тэг биш EOF утга буцаана. EOF нь End of File – файлын төгсгөлийг заасан тогтмол.  Жишээ нь: if (fclose(f)==EOF) { perror(“score.txt fclose"); exit(1); /* stdlib.h санд байдаг функц */ } Файлтай ажиллахдаа дээрх хоѐр үйлдлийг заавал хийх хэрэгтэй.
  • 16. Унших ба бичих үйлдэл.  Текст файл stream-аас char-тэмдэгт эсвэл buffer-тэмдэгт мөр унших, эсвэл түүнд бичих функцууд:  fgetc(FILE *stream) - Файлаас нэг тэмдэгт уншиж, амжилттай бол уншсан тэмдэгтийг үгүй бол EOF утга буцаана.  getc(FILE *stream) - Файлаас мөн адил нэг тэмдэгт уншина  fgets(buffer, n byte, FILE *stream) - Файлаас n урттай(byte) мөр эсвэл мөр шилжих тэмдэгт хүртлэх мөрийг уншиж buffer-буфер луу бичнэ. Тэмдэгт мөрийн төгсгөлд ASCII 0 тэмдэгтийг бичдэг. Амжилттай ажилласан бол бичсэн тэмдэгт мөрийн хаягийг, алдаа гарсан эсвэл файлын төгсгөлд хүрсэн бол NULL утга буцаана.
  • 17. Унших ба бичих үйлдэл.  fputc(char, FILE *stream) - Файлд нэг тэмдэгт(char)-ийг бичнэ. Функц амжилттай бол char тэмдэгтийг үгүй бол EOF утга буцаана.  putc(char, FILE *stream) - Файлд мөн адил нэг тэмдэгт бичнэ  fputs(buffer, FILE *stream) - Файлд buffer-буферийн мөрийг бичнэ. Амжилттай ажилласан -бол сөрөг биш бүхэл тоо, алдаа гарсан бол EOF утга буцаана.
  • 18. Унших ба бичих үйлдэл. Текст файлд формат хэлбэрээр бичих ба файлаас формат хэлбэрээр унших функцууд:  fprintf(FILE *stream, const char *format[, argument, . . . ]); - stream файлд format-д заасан хэлбэр бүхий мэдээллийг бичнэ.  format-мөрөнд бичих мэдээллийн хэвшүүлэлтийг өгөх ба энэ нь printf() функцынхтай адил (номын хуудас 22-23) байна. Функц амжилттай биелэсэн бол файлд бичсэн байтын тоо, алдаа гарсан бол EOF утга буцаана. Жишээлбэл double төрлийн d утгыг файлд таслалаас өмнө 8 орны зайтай, таслалаас хойш 2 орны нарийвчлалтай бичнэ гэвэл: fprintf(pr, “%8.2t”,d); гэж өгнө.
  • 19. Унших ба бичих үйлдэл.  fscanf(FILE *stream, const char *format[, argument, . . . ]); - stream файлаас format-д заасан хэлбэр бүхий мэдээллийг уншина. format-мөрөнд унших мэдээллийн хэвшүүлэлтийг өгөх ба энэ нь scanf() функцынхтай адил байна. Функц амжилттай биелэсэн бол файлаас уншсан байтын тоо, алдаа гарсан бол EOF утга буцаана.
  • 20. Жишээ. score.txt файлд хадгалагдсан оюутны онооны дундажийг хэвлэ. #include<stdio.h> #include<conio.h> #include<stdlib.h> void main() { FILE *fhandle; if ((fhandle=fopen("score.txt","r"))==NULL) { perror("score.txt fopen"); exit(1); } int score,too=0,sum=0; while (!feof(fhandle)&&!ferror(fhandle)) { fscanf(fhandle,"%d",&score) ; sum+=score; too++; } printf("dundaj:%dn",sum/too); if (fclose(fhandle)==EOF) { perror("score.txt(fclose)"); exit(1);} getch();} Дээрх жишээнд файлаас мэдээллийг уншихад хоѐр зүйл тохиолдож болно. Уншиж байгаад файлын төгсгөлд хүрэх үүнийг feof() функцаар, алдаа гарах үүнийг ferror() функцаар тус тус хянана. Эдгээр функц нь тэг эсвэл тэг биш утга буцаана.
  • 21. Файлтай ажиллах функцуудын ангилал:  Нээх, хаах:fopen, freopen, fdopen, fflush, flushall, fileno, fclose, fcloseall  Мэдээлэл унших, бичих:feof, fgetc, fgetchar, fgets, fprintf, fputc, fputs  Файлын заагч(курсор)-ийг удирдах:fgetpos, fseek, fsetpos, ftell, rewind  Ажиллаж байх үеийн алдааг хянах:clearerr, ferror, perror, strerror,  Файл устгах, нэр өөрчлөх, бусад:remove, rename, rmtmp, tempnam, tmpfile, tmpnam
  • 22. Асуулт:  Нээх, хаах файлууд юу вэ?  Файлын унших ба бичих үйлдлийн тухай тайлбарлана уу.  Файлыг хэд ангилдаг вэ?