- •Мова програмування с Навчальний посібник
- •І. Теоретична частина Структура програми на мові с
- •Базові типи даних
- •I для опису цілих чисел без дробової частини nt
- •1. Char – символ
- •3. Float – число з плаваючою крапкою одинарної точності
- •4. Double – число з плаваючою крапкою подвійної точності
- •Арифметичні операції
- •Функції введення scanf() та виведення printf()
- •Оператори
- •Функції користувача
- •Функції із змінним числом аргументів
- •Функції стандартних бібліотек Функції для роботи із символами (ctype.H)
- •Функції для роботи з каталогами (dir.H)
- •Функції для роботи з ос (dos.H)
- •Функції для роботи з графічним режимом (graphics.H)
- •Математичні функції (math.H)
- •Функції для роботи з рядками (string.H)
- •Функції потокового вводу/виводу (stdio.H)
- •Функції вводу/виводу нижнього рівня (io.H)
- •Функції вводу/виводу консолі та порту (conio.H)
- •Структури
- •Об'єднання
- •Динамічний розподіл пам’яті
- •Іі. Практична частина Лабораторна робота №1 Тема: Основні конструкції мови с. Програмування простих алгоритмів
- •Лабораторна робота №2 Тема: Створення і використання функцій
- •Лабораторна робота №3 Тема: Використання структур
- •Лабораторна робота №4 Тема: Організація роботи з файлами
- •Рекомендована література
Функції потокового вводу/виводу (stdio.H)
Функція |
Опис |
Тип результату |
clearerr(FILE *stream); |
Очистка прапорця помилок для вказаного потоку |
void |
fclose(FILE *stream); |
Закриття потоку |
int |
fcloseall(void); |
Закриття всіх відкритих (на верхньому рівні) файлів (потоків) |
int |
feof(FILE *stream); |
Перевірка на кінець потоку |
int |
ferror(FILE *stream); |
Перевірка прапорця помилок потоку |
int |
fflush(FILE *stream); |
Запис даних з буфера у потік |
int |
fgetc(FILE *stream); |
Читання символу з потоку |
int |
fileno(FILE *stream); |
Отримання дескриптора, зв’язаного з потоком |
int |
fgetchar(void); |
Читання символу із стандартного потоку введення |
int |
fgetpos(FILE *stream, fpos_t *pos); |
Повертає поточну позицію у файлі |
int |
fgets(char *s, int n, FILE *stream); |
Читання рядка з потоку |
char * |
fdopen(int handle, char *type); |
Відкриття потоку (відкрити файл і зв’язати його з потоком) |
FILE* |
fprintf (FILE *stream, const char *format [, argument, ...]); |
Запис даних в потік за форматом |
int |
fputc(int c, FILE *stream); |
Запис символу в потік |
int |
fputchar(int c); |
Запис символу в стандартний потік виведення |
int |
fputs(const char *s, FILE *stream); |
Запис рядка в потік |
int |
fread(void *ptr, size_t size, size_t n, FILE *stream); |
Читання даних з потоку |
size_t |
freopen(const char *filename, const char *mode, FILE *stream); |
Повторне відкриття потоку в новому режимі |
FILE * |
fscanf (FILE *stream, const char *format [, address, ...]); |
Читання даних з потоку за рядком формату |
int |
fseek(FILE *stream, long offset, int whence); |
Зміна позиції покажчика файлу |
int |
fsetpos(FILE *stream, const fpos_t *pos); |
Переміщення вказівника файлу відносно початку файлу |
int |
ftell(FILE *stream); |
Повертає поточну позицію вказівника файлу |
long |
fwrite(const void *ptr, size_t size, size_t n, FILE*stream); |
Запис даних із заданого буфера в потік |
size_t |
getc(FILE *stream); |
Читання символу з потоку |
int |
getchar(void); |
Читання символу з потоку stdin |
int |
gets(char *s); |
Читання рядка із потоку stdin |
char* |
getw(FILE *stream); |
Читання слова (двох байт) із потоку |
int |
printf ( const char *format [, argument, ...]); |
Запис даних в потік stdout за форматом |
int |
putc(int c, FILE *stream); |
Запис символу в потік |
int |
putchar(int c); |
Запис символу в потік stdout |
int |
puts(const char *s); |
Запис рядка в потік |
int |
putw(int w, FILE *stream); |
Запис слова (двох байт) в потік |
int |
remove(const char *filename); |
Знищення файлу |
int |
rename(const char *oldname, const char *newname); |
Переіменування файлу |
int |
rewind(FILE *stream); |
Встановлення вказівника файлу на його початок |
void |
scanf ( const char *format [, address, ...]); |
Читання даних з потоку stdin за форматом |
int |
setbuf(FILE *stream, char *buf); |
Встановлення буферизації потоку |
void |
setvbuf(FILE *stream, char *buf, int type, size_t size); |
Встановлення буферизації і розміру потоку |
int |
sprintf (char *buffer, const char *format [, argument, ...]); |
Запис даних в рядок за форматом |
int |
sscanf (const char *buffer, const char *format [, address, ...]); |
Читання даних із рядка за форматом |
int |
tempnam(char *dir, char *prefix); |
Згенерувати ім’я тимчасового файлу в заданому каталозі |
char * |
ungetc(int c, FILE *stream); |
Повертає символ в потік |
int |
vfscanf(FILE *stream, const char *format, va_list arglist); |
Читання даних з потоку з використанням списку аргументів |
int |
vprintf (const char *format, va_list arglist); |
Запис даних в стандартний потік виведення за форматом |
int |
vsprintf(char *buffer, const char *format, va_list arglist); |
Виведення рядка параметрів у визначеному форматі |
int |
vsscanf(const char *buffer, const char *format, va_list arglist); |
Читає рядок, використовуючи список аргументів |
int |
Приклад. Програма, яка зчитує вмістиме файлу з іменем test і друкує його на екран посимвольно.
#include <stdio.h>
void main ()
{
FILE *in; char ch;
if (( in = fopen (“c:\tc\test.txt”, “r”)) != NULL)
{
while ((ch = fgetc(in)) != EOF) fputc(ch, stdout);
fclose(in);
}
else printf (“Файл не відкрився \n”);
}
Приклад. Програма, яка зчитує вмістиме файлу з іменем test і друкує його на екран у вигляді рядків фіксованої довжини.
#include<stdio.h> #include<string.h> void main() { char s[80]; FILE *f; if ((f=fopen("1.cpp", "rt"))==NULL) {
printf("There are an error\n"); return;
}
do { fgets(s,80,f); printf("%s",s); } while (!feof(f)); fclose(f); }
Приклад. Використання функцій fscanf(), fprintf().
#include<stdio.h> void main() { FILE *fi; int age; fi=fopen("age.txt","r"); /* відкриття файлу для читання */ fscanf(fi,"%d",&age); /* читання з файлу числового значення */ fclose(fi); /* закриття файлу */ fi=fopen("data.txt", "a"); /* відкриття файлу для додавання інформації в кінець */ fprintf(fi, "Age==%d.\n",age); /* запис рядка в файл */ fclose(fi); /* закриття файлу */ }
Приклад. Використання двійкових потоків.
#include<stdio.h> #include<conio.h> struct mystruct { int i; char ch; };
int main(void) { FILE *stream; struct mystruct s; if ((stream = fopen("test.txt", "wb")) == NULL) { fprintf(stderr, "Неможливо відкрити файл\n"); return 1; } s.i = 0; s.ch = 'A'; fwrite(&s, sizeof(s), 1, stream); fclose(stream); return 0; }