fprintf() , fscanf() , fputs() , fgets() , getc() , putc() , fgetc() , fputc() ⇐ ПредыдущаяСтр 5 из 5
Бұлардың ішіндегі getc() , putc() , fgetc() , fputc()функциялары әрекеттері ұқсас, айырмашылықтары тек getc()пен putc()макроанықтаулар да, fgetc()жәнеfputc() -нағыз функциялар болып табылады. Барлық файлдық функциялар проротитері <stdio.h>файлында орналасқан. Файлдардан мәлімет жазу/оқу әрекеттерін үш топқа бөлуге болады: - символдарды енгізу/шығару операциялары; - сөз тіркестері жолдарын енгізу/шығару операциялары; - блок бойынша енгізу/шығару операциялары. Символдарды енгізу/шығару операцияларындафайлдан бір ғана символ оқылады немесе оған бір символ жазылады. Мысалы: fgetc(FILE *fp);ашылған файлдан символ оқиды. fputc(int ch, FILE *fp); chсимволы кодын файлға жазады. Сөз тіркестері жолдарын енгізу/шығару операцияларындабір мәлімет алмасуы кезінде файлдан сөз тіркесі жолдары оқылады немесе оған сөз тіркесі жазылады. Мысалы: fgets(char *S); файлдан мәлімет байттарын ‘\n\’ символы кездескенше біртіндеп оқиды да, оларды Sтіркесіне орналастырып, ‘\n\’символын ‘\0’(нөл-терминатор) белгісіне айналдырады. fgets(char *S, int m, FILE *fp); fpтүрінде сипатталған файлдардан байттарды оқып, оларды ‘\n\’символы кездескенше немесе m байт оқылып біткенше Sтіркесі мәні ретінде жазып шығады. Блок бойынша енгізу/шығару операцияларындамәліметтер алмасу олардың бір блогын толық қамтиды. Мысалы: fread (void *ptv, int size, int n, FILE *fp); мұнда fpфайлынан әрқайсысы sizeбайттан тұратын мәліметтің nблогы ptvнұсқауышы көрсетіп тұрған жады аймағына оқылады (оқылатын блок үшін алдын ала орын дайындап қою қажет). fwrite(void *ptv, int size, int n, File *fp); мұнда ptvнұсқауышы көрсетіп тұрған жады аймағында орналасқан әрқайсысы sizeбайттан тұратын мәліметтің nблогы ашық тұрған fpфайлына жазылады. fprintf және fscanf функцияларын пайдалану fprintfфайлға информация жазу үшін, ал fscanfфайлдан информация оқу үшін қолданылады. Олардың жалпы жазылу түрі: fprintf (fp, “спецификация шаблоны”, p); мұндағы p – өрнек; fscanf(fp, “спецификация шаблоны”, адрес); мысал: Бүтін сандар тізбегін (n=5) пернелерден енгізіп, оларды файлға жазу керек болсын. //файл ашып, оған 5 сан жазу #include <stdio.h> #include<conio.h> main() { int k,I,n=5; char fname [ ]=”a:\\.txt\0”; clrscr (); FILE *fp; fp=fopen(fname,”w”); printf(“енгізілген сандар %s файлына жазылады \n”,fname); puts (“ әр сан енгізілген соң, Еnter басыңыз \n”); for (i=0; i<n; 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 <math.h> #include <stdio.h> #include <conio.h> 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файлды ашуда қате болды”); getch( ); return (0); } puts (“Enter арқылы бөліп, 5 сан енгізіңіз:”); for (i=1; i<=n; i++) {scanf (“%i”, “&d” , x); } fclose (fp); getch ( ); } Нәтижесі: Enter арқылы бөліп 5 сан енгізіңіз: Файлдағы мәлімет: 1 2 3 4 5 11 22 33 44 55 Дискідегі file1.txt файлын мәліметтер оқу үшін ашып, ондағы мәліметті оқып, файлдағы тақ сандардың қанша екенін және қосындысын табу керек. /* файлдан мәліметтер оқу */ #include <math.h> #include <stdio.h> #include <conio.h> 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,”at”))==NULL) {printf (“\nфайлды ашуда қате болды”); getch( ); return (0); } puts (“файлдан оқылған сандар:”); while (!feof (fp)) {scanf (fp,”%i”,&y); printf(“%i”,&y); if (y%2==0) {s+=y; k=k+1;} } fclose (fp); printf (“\nтақ сандар қосындысы s= %i, олардың саны k=%i,s,k); getch( ); } fgets және fputs функцияларын пайдалану Сөз тіркестерімен жұмыс істегенде fgetsжәнеfputsфункциялары қолданылады: fgetsфункциясының жазылу түрі: fgets(нұсқауыш,MAXLEN,fp); нұсқауыш –компьютер жадындағы орынға сілтейтін нұсқауыш; MAXLEN –оқылатын тіркестің максимальды ұзындығы; fp –файл нұсқауышы. Мысалы: #define L 20 Main() { FILE *fp; char *st[n]; fp=fopen(“stroke”,”r”); while(fgets(st,L,fp)!=NULL) Puts(st); } Файлдарға сөз тіркестерін жазу үшін fputsфункциясы келесі түрде қолданылады: status=fputs (қатар нұсқауышы,fp); status –бүтін сан, оның мәні eofфункциясында жазылады, егер fputs()функциясы файлдыңсоңына шыққан болса немесеқате тапса, fputsфункциясы жазылатын жолдың соңына /0символын жазбайды. Төменде осы функцияларды пайдалану мысалы келтірілген. #include <stdio.h> 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(); puts (ch,fp); puts (“Сөз тіркесін енгізіңіз:”); gets(str); fputs(str,fp); fclose(fp); //Файлдан мәлімет оқу 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 береді.
fwrite және fread функцияларын пайдалану Құрылымдарды пайдаланатын файлдармен жұмыс істеу кезінде fread()/fwrite()функцияларын пайдаланған ыңғайлы. Олардың жазылуы: fread(ptr,size,n,fp); мұнда fpфайлынан әрқайсысыsizeбайттан тұратын мәліметтіңnблогыptfнұсқауышы көрсетіп тұрған жады аймағына оқылады (оқылатын блок үшін алдын ала орын дайындап қою қажет). fwrite(ptr,size,n,fp); мұнда ptfнұсқауышы көрсетіп тұрған жады аймағында орналасқан әрқайсысыsizeбайттан тұратын мәліметтіңnблогыашық тұрған fpфайлына жазылады. Осы функцияларды қолданудың бір мысалын келтірейік: typegef struct { char author [30]; char title [50]; int pages; } BOOK; BOOK b1={“Kernighan”,”C Language”,256}, b2; FILE *fp; void main() {… fp=fopen(“struct.txt”,”w+”); //файл әрі оқу, әрі жазу үшінашылады fwrite (&b1, sizeof(BOOK), 1, fp); fseek(fp,0,0); //маркер файл басына fread(&b2, sizeof (BOOK), 1, fp); printf (“Авторы - %s,аты - %s,беттер саны - %d\n”,b2.author,b2.title,b2.pages) Ұсынылатын әдебиеттер тізімі Негізгі әдебиеттер: 8. Алгоритмдеу және программалау тілдері [Мәтін]: Оқулық / Б. Б. Бөрібаев, А. М. Махметова.- Алматы: ЖШС РПБК Дәуір, 2011.- 328бет. 9. Программалау технологиялары [Мәтін]: Оқулық / Б. Бөрібаев.- Алматы: ЖШС РПБК Дәуір, 2011.- 352бет. 10. Шилдт Герберт. С++: Базовый курс / Г. Шилдт.- 3-е изд./ Пер. с англ. и ред. Н. М.Ручко.- М.: Вильямс, 2006.- 624с. 11. Шилдт Г. Искусство программирования на С++. / Г. Шилдт.- М.: СПб, 2005.- 496. 12. Павловская Т.А. С/С++. Программирование на языке высокого уровня: Учебник для вузов / Т.А. Павловская.- СПб.: Питер, 2006.- 461с. 13. Савич У. С++ во всей полноте / У. Савич.- СПб.: Питер, 2005.- 784с. 14. Дейтел Х.М. Как программировать на С / Х.М. Дейтел, П.ж. Дейтел; Пер. с англ. под ред. В.В.Тимофеева.- 4-е издание.- Москва: БИНОМ, 2006.- 912с. Қосымша әдебиеттер: 19. Павловская Т.А. С++. Обьектно-ориентированное программирование: Практикум / Т. А. Павловская, Ю.А. Щупак.- СПб.: Питер, 2005.- 265с. 20. Архангельский А.Я. Язык С++ в С++ Builder: Справочное и методическое пособие / 21. Архангельский А.Я. Программирование в С++Builder 5/ А.Я. Архангельский.- М.: БИОНОМ, 2000.- 1152с. 22. Аляев Юрий А. Алгоритмизация и языки программирования Pascal,C++,Visual Basic: Справочник / Ю.А. Аляев, О.А. Козлов.- М.: Финансы и статистика, 2004.- 320 c. 23. Акжалова А.Ж. Программирование в среде Visual C++: Учебное пособие / А.Ж. Акжалова, Л.Б. Атымтаева.- Алматы: Қазақ университетi, 2005.- 146с. 24. Юркин А.Г. Задачник по программированию / А.Г. Юркин.- СПб.: Питер, 2003.-192с. 25. Могилев А.В. Информатика: Учебное пособие для студентов вузов / А.В. Могилев, 26. Н.И. Пак, Е.К. Хеннер; Под ред. Е.К.Хеннера.- 3-е издание перераб. и доп.- М.: Академия, 2004.- 848с. 27. Страуструп Б. Язык программирования С++. –СПб.:БИНОМ, 1999.-991с 28. Бабэ Б. Просто и ясно о Borland С++. –М.: БИНОМ, 1995.-400с. 29. Голуб А.И. С и С++. Правила программирования . –М.:БИНОМ,1996.-272с. 30. Баженова И.Ю. Visual С++6.0. Уроки программирования. –М.: Диалог-МИФИ, 1999.-416с. 31. Карпов Б., Баранова Т. С++:специальный справочник. –СПб.:Питер, 2000.-480с. 32. Исмағұлова Б., Ережепова Э., Әбдіжапарова Г. Сөздік Словарь. Алматы.,Аруна, 2002.- 415б. 33. Г. Г. Мусабаева Русско- казахский словарь I-том, II-том. Алматы- 1978. 34. www.sunir.org/booklist 35. http://www.osborn.com 36. www.possibility.com
Бақылау—өлшем құралдары
1. Тілдің жалпы сипаттамасы.Айнымалылар және тұрақтылар. 2. С++ тілінде мәліметтердің типтері. 3. Бүтін типті мәліметтерді сипаттау. 4. Бүтін тұрақтылар. 5. Символдық мәліметтерді сипаттау. 6. Символдық тұрақтылар. 7. Жылжымалы нүктелі айнымалыларды сипаттау. 8. Жылжымалы нүктелі тұрақтылар. 9. Мәліметтер типтерін қолдану. 10. Унарлы, бинарлы және тернарлы амалдар 11. Айнымалылар 12. Өрнектер 13. Тармақталу операторы. 14. Циклдық операторлар. 15. “Әзір” циклы. 16. “Дейін” циклы. 17. Параметрлі цикл. 18. Басқару операторлары. 19. Көрсеткіштер. Көрсеткіштерді алғашқы орнату. 20. Көрсеткіштермен амалдар. 21. Массивтер. 22. Жолдар. 23. Типтердің атын өзгерту. 24. Тізім типі. 25. Құрылымдар. 26. Біріктіру. 27. Функцияларды жариялау және анықтау. 28. Функцияның қайтаратын мәні. 29. Функцияның параметрлері. 30. Параметрлерді массив түрінде беру. 31. Функцияның атын параметр түрінде беру. 32. Параметрлерінің саны өзгермелі функциялар. 33. “Тура” рекурсия түсінігі. 34. Функцияны қайта қосу. 35. Енгізу - шығару функциялары. 36. Ағымды ашу. 37. Ағымдарға енгізу/ шығару, ағымдарды жабу. 38. Препроцессордың негізгі инструкциялары(директивтер). 39. Сыртқы жариялаулар. 40. Стандартты библиотеканың атауларының аймағы.
Пәннің оқу-әдістемелік қамтамасыздандыруларының картасы
С++-те программалау (пәнің атауы)
Кафедра _______Ақпараттық технологиялар және ИОӘ ________________ Тьютор ______А.О.Алдабергенова__________________________________________ Мамандық ____5В011100 – информатика, 5В060200-Информатика_________________ Кредит саны ______3_____________________________________________________ Пән циклі ______Кәсіби пәндер, Таңдау компоненті ______________________ Студенттер саны _______________________________________________________
Оқу сабақтарының программалық және мультимедиалық тізімі
Арнайы аудиториялар, кабинеттер, зертханалардың тізімі
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|