FILE *fp;
Файлдармен жұмыс жасауға қажетті төрт қадам:
файлды ашу;
файлды жабу;
файлды енгізу;
файлды шығару. Файлды ашу:
fp=fopen(“физикалық файлдың аты”,”режим”).
Файлды жабу: fclose(сілтеме аты).
Файлдармен жұмыс жасайтын режимдер:
-
Режим
|
Тағайындалуы
|
r
|
Файлды оқу үшін ашамыз (файлдан файлдық буферге оқу)
|
Файлды жазу үшін құрамыз (файлдық буферден файлға жазу)
-
a
|
Мәліметтерді енгізу режимі (файлдық буферден файлға қосу)
|
48
r+ Құрылған мәтіндік файл файлдың кез келген жерінде оқу үшін, жазу үшін ашылады; файлды үлкейтуге рұқсат етілмейді
w+ Файлды жаңарту үшін құрамыз. Егер файл құрылған болса, онда мәліметтер жойылады
a+ Файлды жаңарту үшін құрады. Егер файл бар болса, онда мәліметтер файлдың соңына жазылады
Файлды енгізу функциялары (мәліметтерді файлдан оқу):
бір символды енгізу
айнымалының_аты=gets(нұсқауыштың_аты);
сөз тіркесін енгізу fgets(pa, n, fp),
мұндағы, ра – сөз тіркесінің айнымалысына нұсқауыштың_аты немесе файлдан сөз тіркесін оқитын символдар жиымының аты;
n – файлдан оқылатын символдар саны;
fp – файлдық буфердің адресі бар нұсқауыштың_аты.
тізбектелген файлдан мәліметтерді оқу
fscanf(fp,”f ”,a),
мұндағы, f – форматты сөз тіркесі;
Мысалы: fscanf(fp,”%d”,&a);
еркін қол жетімді файлдан мәліметтерді оқу fread(a, m, n, fp),
мұндағы, m – мәліметтер блогының өлшемі;
– мәліметтер блогының саны.
Мысалы. fread(&a,sizeof(int),10,fp);
Файлдарды шығару функциялары (файлдарға мәліметтер жазу):
бір символды шығару (бір символды жазу)
putc(айнымалының_аты, нұсқауыштың_аты);
сөз тіркесін шығару (сөз тіркесін файлға жазу) fputs(pa, fp),
мұндағы, ра – сөз тіркесінің айнымалысына нұсқауыштың_аты немесе файлдан сөз тіркесін оқитын символдар жиымының аты;
fp – файлдық буфердің адресі бар нұсқауыштың_аты.
тізбектелген қол жетімді файлға мәліметтер жазу printf(fp,”f”, a),
мұндағы, f – форматты сөз тіркесі,
Мысалы. fprintf(fp,”%d ”, a);
еркін қол жетімді файлға мәліметтер жазу fwrite(a, m, n, fp),
мұндағы, m – мәліметтер блогының өлшемі;
– мәліметтер блогының саны.
Мысалы: fwrite(a,sizeof(int),10,fp);
А тапсырмасы.
Мысалы. Енгізілген сөз тіркесіндегі «а» әріпінің орнына «+» символымен алмастыратын программаны жазыңыз.
#include
#include
int main()
{ int i; char st[10]; gets(st);
for (i=0;i<10;i++)
if (st[i]=='a')st[i]='+'; printf("\n st=%s\n",st);// puts(st);
system("PAUSE"); return 0;
А тапсырмасының нұсқасы.
«Тілдер және программалау технологиясы» сөз тіркесінің әр элементін басқа символдық жиымға көшіріп жазу программасын құрыңыз.
Үш сөз тіркесін «Зертханалық», «жұмыс», «№6» біріктіріп, төртінші жолға «Зертханалық жұмыс №6» деген сөз тіркесін жазыңыз.
Енгізілген сөз тіркесінде кіші әріппен жазылған «а» әрібін үлкен әріппен жазылған түріне ауыстыратын программаны жазыңыз.
Енгізілген сөз тіркесінен «н» әріпін алып тастайтын программаны құрыңыз.
Енгізілген сөз тіркесінде «е» әріпінің санын санайтын программаны құрыңыз.
Енгізілген сөз тіркесінің бірінші сөзінен кейін «салют» сөзін қосатын программаны жазыңыз.
Енгізілген сөз тіркесінен «о» әріпін алып тастайтын программаны құрыңыз.
Екі жолдағы сөз тіркесін біріктіріп жазатын программаны құр.
Енгізілген сөз тіркесіндегі әрбір «а» әріпінен кейін пробел қоятын программаны жаз.
Енгізілген сөз тіркесінде үлкен әріппен жазылған «О» әрібін кіші әріппен жазылған түріне ауыстыратын программаны жазыңыз.
Енгізілген сөз тіркесіндегі сөздер санын санайтын программаны жаз.
Енгізілген сөз тіркесіндегі «и» әріпін санайтын программаны құр.
Енгізілген сөз тіркесінің бірінші сөзін «*» символдар тізбегіне ауыстыратын программаны жазыңыз.
Енгізілген сөз тіркесіндегі барлық пробелдарды жоятын программаны құр.
Енгізілген сөз тіркесінің соңғы сөзін «*» символдар тізбегіне ауыстыратын программаны жазыңыз.
50
Енгізілген сөз тіркесіндегі сөздердің жартысын басқа сөз тіркесіне көшіретін программаны құрыңыз.
Енгізілген сөзді соңынан алдына қарай жазатын программаны құр.
Енгізілген екі сөз тіркесінің алғашқы жартысын алмастыратын программаны құр.
Сөз тізбегіндегі соңғы сөзді жоятын программаны құр.
Енгізілген сөз тізбегінің алғашқы жартысын екінші жартысымен алмастыратын программаны құр.
Б тапсырмасы.
Орындалатын мәтінді файлға енгізу. Файлдан мәліметтерді программаға енгізіп, оны өңдеп, файлға жазу және файлдан мәліметтерді баспаға шығару.
Мысалы. Енгізілген сөз тіркесіндегі «а» әріпінің орнына «+» символымен алмастыратын программаны жазыңыз.
#include
#include
int main()
{int i;
char st[10];
FILE *fp; /* File құрылымына нұсқауыш хабарлаймыз*/ fp = fopen("1.txt","w"); /*жазу үшін файлды ашамыз*/ if (fp == NULL)
printf("Файлды ашуға немесе құруға мүмкіндік жоқ\n"); else{
scanf ("%s", st); /*мәліметтер енгізу*/
fprintf(fp," %s\n", st); /* st айнымалысынан мәліметтерді файлға жазу*/
}
fclose(fp); /*файлды жабу*/
fp = fopen("1.txt","r"); /*оқу үшін файлды ашу*/ if ((fp = fopen("1.txt","r")) == NULL)
printf("Файлды ашуға немесе құруға мүмкіндік жоқ\n"); else{
fscanf(fp," %s", st); /*файлдан мәліметтерді оқу және оларды st айнымалысына жазу */
for (i=0;i<10;i++)
if (st[i]=='a')st[i]='+';
}fclose(fp);
fp = fopen("1.txt","w"); /*жазу үшін файлды ашу*/ if (fp == NULL)
printf("Файлды ашу немесе құру мүмкін емес\n"); else{
fprintf(fp," %s\n", st); /* st айнымалысынан мәліметтерді файлға жазу */
}
51
fclose(fp);
fp = fopen("1.txt","r"); /*файлды оқу үшін ашу*/ if ((fp = fopen("1.txt","r")) == NULL)
printf("Файлды ашу немесе құру мүмкін емес \n");
else{
fscanf(fp," %s", st);
printf (" %s\n", st); /*мәліметтерді шығару*/
}
fclose(fp); /*файлды жабу*/
system("PAUSE");
return 0;
}
Б тапсырмасының нұсқасы.
Тапсырма нұсқалары А тапсырмасының нұсқаларына сәйкес келеді.
Достарыңызбен бөлісу: |