Программалау тілдері жоғары оқу орындарына арналған оқулық



жүктеу 2,9 Mb.
Pdf просмотр
бет60/82
Дата19.11.2018
өлшемі2,9 Mb.
#20460
түріПрограмма
1   ...   56   57   58   59   60   61   62   63   ...   82

 
164 
Мысал:  Бҥтін  сандар  тізбегін    (n=5)  пернелерден  енгізіп,  оларды  файлға 
жазу керек болсын. 
// файл ашып, оған 5 сан жазу  
#include  
#include  
main() 
{ int k,i,n=5; 
  char fname[]="a:\\num.txt\0"; 
  clrscr(); 
  FILE *fp; 
  fp=fopen(fname,"w"); 
  
printf
("Енгізілген сандар %s файлына жазылады\n",fname); 
  
puts
("Әр сан енгізілген соң, Enter басыңыз\n"); 
  for(i=0; i
  {scanf("%i",&k); 
   fprintf(fp,"%d ",k); 
  } 
  fclose(fp); 
  
printf
("Енгізілген сандар %s файлына жазылды
\n",
 
fname
); 
  
getch(); 

Нәтижесі: 
Енгізілген сандар a:\num.txt файлына жазылады  
Әр сан енгізілген соң, Enter басыңыз 





Енгізілген сандар a:\num.txt файлына жазылды 
Файлдағы мәлімет: 1 2 3 4 5 
Бес бҥтін санды n=5 бҧрыннан бар file1.txt файлына жазу керек, сол файлды 
мәлімет қосу ҥшін ашып, оған 5 сан жазып, сонан соң ондағы мәліметті оқып 
тексеру керек.   
/* файлға мәліметтер қосу */ 
#include  
#include  
#include  
main() 
{ int i, k=0, s=0, n=5, y, x; 
  char fname[]="file1.txt"; 
  clrscr(); 
  FILE *fp; 
  fp=fopen("file1.txt", "at"); 
  if ((fp=fopen(fname,"at")) == NULL) 
   { printf("\nФайлды ашуда қате болды"); 


 
165 
     getch(); 
     return(0); 
   } 
  puts("Enter арқылы бөліп, 5 сан енгізіңіз:"); 
  for(i=1; i<=n;i++) 
   {scanf("%i", &x); 
    fprintf(fp,"%d ", x);} 
  fclose(fp); 
  getch(); 

Нәтижесі: 
Enter арқылы бӛліп, 5 сан енгізіңіз: 
11 
22 
33 
44 
55 
Файлдағы мәлімет: 1 2 3 4 5 11 22 33 44 55 
Дискідегі  file1.txt  файлын  мәліметтер  оқу  ҥшін  ашып,  ондағы  мәліметті 
оқып,  файлдағы тақ сандардың қанша екенін және қосындысын табу керек.   
 
/* файлдан мәліметтер оқу */ 
#include  
#include  
#include  
 
main() 
{ int i,k=0,s=0,n=5,y,x; 
  char fname[]="file1.txt"; 
  clrscr(); 
  FILE *fp; 
  fp=fopen(fname,"r"); 
 
  /* Оқу үшін файл ашу */ 
  fp=fopen("fp","rt"); 
 
   if ((fp=fopen(fname,"rt")) == NULL) 
  {  printf("\n Файл ашуда қате болды"); 
     getch(); 
     return(0); 
  } 
  puts("Файлдан оқылған сандар:"); 
  while(!feof(fp)) 
   {fscanf(fp,"%i",&y); 
    printf(" %i ",y); 
    if (y%2==0)  {s+=y;k=k+1;} 
   } 


 
166 
  fclose(fp); 
  printf("\nТақ сандар қосындысы s = % i,  
            олардың саны k=%i", s, k); 
  getch(); 

10.2  fgets және fputs функцияларын пайдалану 
Сӛз  тіркестерімен  жҧмыс  істегенде  fgets  және  fputs  функциялары 
қолданылады: 
fgets
 функциясының жалпы жазылу тҥрі: 
fgets(нұсқауыш,MAXLEN,fp); 
нұсқауыш  –  компьютер  жадындағы  орынға  сілтейтін  нҧсқауыш;  MAXLEN  – 
оқылатын тіркестің максимальды ҧзындығы; 
fp
 - файл нҧсқауышы. 
Мысалы: 
#define L 20 
main() 
{  
  FILE *fp; 
  char *st[n]; 
  fp=fopen(“stroka”, ”r”); 
  while(fgets(st, L, fp) != NULL) 
puts (st); 

Файлдарға  сӛз  тіркестерін  жазу  ҥшін    fputs  функциясы  келесі  тҥрде 
қолданылады: 
status=fputs(қатар нұсқауышы, fp); 
status
 – бҥтін сан, оның мәні 
eof
 функциясында жазылады, егер 
fputs()
функциясы файлдың соңына шыққан болса немесе қате тапса, 
fputs
 
функциясы жазылатын жолдың соңына /0 символын жазбайды. 
Тӛменде осы функцияларды пайдалану мысалы келтірілген. 
#include  
void main() 

int n; 
char str[50],str1[50],ch; 
FILE *fp; 
// Файлға мәлімет жазу 
fp = fopen("ex.txt","w"); 
puts("Бүтін сан енгізіңіз: "); scanf("%d",&n); 
fprintf(fp,"%d\n",n); 
puts ("Символ енгізіңіз: "); ch=getchar(); 
putc (ch, fp); 
puts ("Сөз тіркесін енгізіңіз: "); gets(str); 
fputs(str,fp); 
fclose(fp); 
// Файлдан мәлімет оқу 


 
167 
if((fp = fopen("ex.txt","r")) != NULL) 
 { 
 fscanf (fp, "%d", &n); printf ("n=%d\n", n) ; 
 ch = getc (fp); putchar (ch); 
 fgets(str1, 50, fp); puts (str1); 
 fclose (fp); 
 } else printf ("\nФайлдан мәлімет оқылмайды!"); 

Мҧндағы 
fgets()
функциясының екінші параметрі N – оқылатын 
символдар саны, оған '\0' белгісі де қосылады. Бҧл функция ӛз жҧмысын N-1 
символын оқығаннан кейін немесе '\0' белгісі кездескенде аяқтайды. Екеуінде 
де сӛз тіркесі соңына '\0' белгісі қосылады. 
fgets() 
функциясы оқылған сӛз 
тіркесі адресін қайтарады немесе файл оқылып болғанда (не қате шықса), 
NULL белгісін береді.  
fputs()
 функциясы әрекет дҧрыс орындалса, соңғы оқылған символ кодын 
қайтарады,  ал  қате  болса,    EOF  (файл  соңы)  белгісін  береді.  Бҧл  функция 
курсорды автоматты тҥрде келесі жолға кӛшірмейді.  
Жоғарыдағы  функциялар  файл  мәліметтерін  біртіндеп,  символдан  соң 
келесі  символды  қарастыра  отырып  ӛңдейді.  С  тілі  файлдармен  жиым  сияқты 
жҧмыс  істеуге  де  мҥмкіндік  береді,  яғни  кез  келген  байтты  жеке  ӛңдеуге  де 
болады.  Файл  ішіндегі  белгілі  бір  орынды  айқындау  ҥшін  мына  функция 
қолданылады:  
    fseek(файлға нұсқауыш, бастапқы нүктеден ығысу, бастапқы нүкте); 
Екінші  аргумент  типі  long,  оның  мәні  оң  да,  теріс  те  болуы  мҥмкін.  Ол 
бастапқы  нҥктеден  қанша  орынға  (байтпен)  ығысу  керек  екендігін  кӛрсетеді. 
Ҥшінші  аргумент  файлдағы  бастапқы  нҥкте  орнын  анықтайтын  код  болып 
табылады. Осы код ҥшін мынадай мәндер тағайындалған: 
0 - файл басы; 
1 - ағымдағы позиция; 
2 - файл соңы. 
Дҧрыс  орындалғанда,  fseek()  функциясы  0  мәнін  береді,  ал  егер  қате 
(мысалы, файлдың сол жақ шекарасынан ары аспақшы болғанда) болса, онда  1 
береді.  
10.3 fwrite және fread функцияларын пайдалану 
Қҧрылымдарды  пайдаланатын  файлдармен  жҧмыс  істеу  кезінде  
fread()/fwrite()
 функцияларын пайдаланған ыңғайлы. Олардың жазылуы: 
fread(ptr, size, n, fp); 
мҧнда 
fp
 файлынан әрқайсысы 
size
 байттан тҧратын мәліметтің  
n
 блогы 
ptv
 нҧсқауышы кӛрсетіп тҧрған жады аймағына оқылады (оқылатын блок ҥшін 
алдын ала орын дайындап қою қажет). 
fwrite(ptr,size,n,fp); 
мҧнда ptr нҧсқауышы кӛрсетіп тҧрған жады аймағында орналасқан  
әрқайсысы size байттан тҧратын мәліметтің  
n
 блогы ашық тҧрған 
fp
 файлына 
жазылады. 


жүктеу 2,9 Mb.

Достарыңызбен бөлісу:
1   ...   56   57   58   59   60   61   62   63   ...   82




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

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