Ііі. Есептің программасы



жүктеу 1,13 Mb.
Pdf просмотр
бет12/41
Дата06.02.2020
өлшемі1,13 Mb.
#28386
түріПрограмма
1   ...   8   9   10   11   12   13   14   15   ...   41

152 
 
Текстік  режимде  ашу  үшін  режимді  көрсеткенде  қасына  «t»  символын  тіркеу 
арқылы жүзеге асады; 
Режимдер кестесі: 
 
Режим 
Сипаты 
 
а 
 
а+ 
 

 
r+ 

w+ 
 
Файл мәндерімен толықтырылуы үшін ашылады. Егер файл 
жоқ болса,  ол құрылады. Жаңа мән соңына тіркеледі; 
 
Жоғарыдағы секілді, тек оқұға да болады; 
 
Файлды тек оқу үшін ашады, файл жоқ болса, ашылмайды; 
 
Файлды оқуға да, жазуға да болады; 
Жаңа файл ашады, бұрын бар болса, мәнін өшіреді. 
Жаңа  файлды  мән  жазуға  да,  одан  оқуға  да  мүмкіндік 
береді. Файл болса, мәні тазартылады.  
 
R+,w+,a+  режимдерін  қолдануда,  яғни  оған  оқуды  және  жазуды  бір  уақытта 
орындалу  барысында  файл  көрсеткішінің          Fsetpos(),    fseek(),    немесе    rewind()  
файлдары көмегімен ағымды позицияларын модификациялау  керек. 
 
Порграмма  жұмысы  аяқталғанда  Си-де  автоматты  түрде  барлық  ашық 
файлдар жабылады, ал файлды жабу үшін fclose(fin) қолданылады.  
С++ тілінде: 
Файлмен  мәлімет  алмасу  мақсатында  ifstream  және  ofstream  кластарын 
қолданған тиімді. Ол үшін < fstream. h >  тақырыптық файлы ашылуы  тиіс. 
Мұнда,  сәйкесінше,  ifstream  класының  объектісі  myof  және  ostream 
класының mygf лектері құрылып көрсетілген файлмен байланысады.  
Мысалы,     Ifstream myof(“prim.in”,ios::in); 
Ofstream mygf(“prim.out”,ios::out); 
  Бір  объектімен  тізбектеп  бірнеше  лекті  байланыстыру  қажет  болса,  онда  ол 
төмендегідей ретпен орындалады: 
Ifstream  myof; 
.  .     . 
myof(“prim.in”); 
.   .   . 
myof.close(); 
myof.open (“prim2.in”); 
.   .   . 
myof.close(); 
  Файлмен мәлімет алмасу мүмкіндігінің  режимін өзгерту – файлдық объектінің 
сипатындағы екінші аргументін өзгерту арқылы жүзеге асады. 
Мысалы,    Ofsetream  myof  (  “prim.in”,ios::app  |  ios::nocreate);  -  мұндағы  файл  бар 
болса  ғана  myof  объектісі  құрылып,  байланыс  орнатылады,  себебі  ios::nocreate 
аргументі  берілген,  яғни  файл  болмаса,  объект  құрылмайтынын  білдіреді.  Ал, 


153 
 
ios::app  аргументі  файлға  шығарылатын  мәндер  файлдың  соңына  қосылатынын 
анықтайды.  
Флаг-аргументтер  биттік  |  -  «немесе»  амалының  көмегімен  біріктіріліп 
анықтала алады. 
Файлдық  лекті  анықтау  барысында  қолданылатын  аргументтерді  анықтайтын 
флагтар төмендегідей: 
флаг 
Мағынасы 
ios::in 
Файл оқуға ашылады 
ios::out 
Файл жазуға ашылады 
ios::ate 
Объект  құрылған  соң,  ағымды  көрсеткіш  файлдың 
соңына орнатылады 
ios::app 
Мәндер файлдың соңына жазылады 
ios::trunc 
Егер файл бар болса, ол тазартылады 
ios::nocreate 
Файл болмаса, онда объект құрылмайды 
ios::noreplace 
Файл бар болса, онда объект құрылмайды 
ios::binary 
Файл  екілік  режимде  ашылады  (қалыпты  жағдайда 
тексттік режим) 
 
feоf (FILE * fp) – функциясы файлдың соңын анықтайды. 
Файлды жабу үшін: 
Int  fclose(FILE  *fp)  функциясы  қолданылады,  яғни  файлдық  көрсеткішпен 
орнатылған байланысты үзеді. 
  Файлмен мәлімет алмасу үшін fstream класының объектісі де қолданылады: 
Fstream  io(“update.dat”, ios::in|ios::app); - бұл жағдайда көрсетілген файл мәліметті 
оқуға және жазуға ашылады.  
  Seekg() файлдан оқу ал, seekp() файлға жазу барысында функциялары файлдың 
ағымды позициясының маркерін басқаруға қолданылады. 
 Мысалы, 
  
io.seekg(5,  ios::cur)  –  оқу  барысында  маркерді  ағымды  орынынан  5  байтқа  
жылжыту; 
io.seekg(-7, ios::end);    -  маркерді соңынан бастап 7 байтқа жылжыту 
керектігін білдіреді. 
Аргументтер: 
Io::cur –  ағымды орынынан; Io::beg –  файл басынан;    
Io::end -  файл соңынан жылжытылатынын білдіреді. 
   Файлдық лектің күйін анықтау функциялары: 
Функция 
Түсініктеме 
eof() 
Файл соңын кездестірсе, 0-дік емес мән қайтарады 
fail() 
Лекте қате кездессе 0- ден өзге мән қайтарады 
bad() 
Енгізу-шығару барысында мағыналы қате кетсе, нөлден өзге 
мән қайтарады, онда лекпен жұмыс тоқтатылғаны дұрыс. Лек 
күйінің биттік мәндері анықталмаса, 0-ге тең емес мән береді. 
rdstate() 
Мына тұрақтылардың бірін, яғнм лектің ағымды күйін 
анықтайтын мәнді қайтарады: 


154 
 
Ios::goodbit  - қате жоқ 
Ios::eofbit – файл соңына жетті 
Ios::failbit – форматтау немесе түрлендіру қатесі 
Ios::badbit - маңызды қате 
clear() 
0-ге тең болса тазарту 
 
12.2. Файлдық енгізу-шығару 
 
Файлдан оқығанда Pascal-дағы секілді, 
        fprinf(fin,’формат’, <айнымалы>); 
      fscanf(fin,'формат', <айнымалы>); 
      fseek()  функциясы: 
Жалпы форматы: 
   Int fseek (FILE *str, long offset, int orig) 
         М, fseek (f, K, r) 
Fseek  функциясы  f  Көрсеткіші  арқылы  берілген  файлдағы  ағымды  көрсеткішті  К 
байтқа жылжытады. Жылжыту: 
-  файлдың басынан (r=0) 
-  ағымды көрсеткіш тұрған (r=1) 
-  файлдың аяғынан (r=1) басталуы мүмкін. 
Си- де r-дің мәні ретінде көрсету үшін  қолданылатын 3 const қарастырылған: 
    SEEK_SET (файл басынан жылжу) 
    SEEK_CUR(ағымдағы позициядан бастау) 
    SEEK_END(файл соңынан) 
Fseek() функциясы қызметі сәтті аяқталса 0-ді, әйтпесе EOF мәнін қайтарады. 
 
  Ftell()-функциясы  файл  басынан  бастап  ығысқан  шамамен  анықталады,  яғни 
long типті мән қайтарады, ағымды көрсеткіштің рынын анықтайды.  
Ж.Т:    long ftell(FILE*str) 
            Ftell(f) 
  Rewind функциясы ағымды көрсеткішті файлдың басынан орындайды.        
    rewind(FILE*str); 
    rewind(f) мынаған сәйкес мәнді қайтарады; 
    fseek(f, ol, seek_set);  
 
Әдебиеттер 
1.  Керниган Б., Ритчи Д.,- Язык программирования Си. – М.: Финансы и 
статистика, 1985 г. 
2.  Вирт Н. Алгоритмы и структуры данных: Пер. с анг.- М.: Мир, 1989 г.  
3.  Д.Кнут Искусство программирования для ЭВМ. Основные алгоритмы. М.: 
Мир, 1976. 3.        
4.  Н.Культин., С/С++ в задачах и примерах – БХБ-Петербург, 2002 г. 
5.  Крис Паппас., Программирование на С и С++ - BHV, Киев, 2000 г. 
6.  Т. А. Павловская, А. Ю. Щупак С/С++ Структурное программирование: 
Практикум- СПб.: Питер, 2005   
7.  Уэйт М . Язык Си. Руководство для начинающих: Пер. с англ. – М., Мир, 
1988 г. 


жүктеу 1,13 Mb.

Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   ...   41




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау