stdio.h
|
|
Ця стаття має кілька недоліків. Будь ласка, допоможіть покращити її або обговоріть ці проблеми на сторінці обговорення.
|
| Ця стаття потребує переробки. Прохання поліпшити її, згідно Довідка:Досконала стаття. |
| Заголовні файли С |
stdio.h (від англ. standard input/output header - стандартний заголовний файл введення/виведення) заголовний файл стандартної бібліотеки мови Сі, що містить визначення макросів, констант та оголошення функцій і типів, що використовуються для різних операцій стандартного введення і виведення.
C++ заради сумісності також використовує stdio.h поряд зі схожим за функціональністю заголовним файлом cstdio, хоча більшою популярністю користується бібліотека <iostream>.
Функції, оголошені в stdio.h, є вельми популярними завдяки тому, що будучи частиною стандартної бібліотеки мови Сі, вони гарантують роботу на будь-якій платформі, яка підтримує Сі. Програми на окремих платформах можуть, тим не менш, мати причини для використання функцій введення/виведення самої платформи замість функцій stdio.h.
Зміст |
[ред.] Приклад використання
#include <stdio.h> int main(void) { int ch; while ((ch = getchar()) != EOF) putchar(ch); putchar('\n'); return 0; }
Програма, наведена вище, зчитує всю вхідну інформацію зі стандартного введення і виводить її побайтово на стандартний потік виведення, додаючи символ переходу на новий рядок в кінці.
[ред.] Функції
| Ця стаття містить перекладений текст, що потребує уваги від когось, хто вільно володіє мовою оригіналу та українською. (червень 2011) |
Функції-члени функції, оголошені в stdio.h у загальному випадку можуть бути розділені на дві категорії: функції для операцій з файлами і функції для операцій введення-виведення.
Всі функції в мові Сі (і його численних різновидів) оголошуються в заголовних файлах. Таким чином, програмістам доводиться підключати файл stdio.h до вихідного коду, щоб використовувати функції, оголошені в ньому.
| Ім'я | Примітка |
|---|---|
| fclose | int fclose (File * stream);
Закриває файл, пов'язаний з потоком і його непричетності. Всі внутрішні буфери, пов'язані з потоком скидаються: зміст будь-якого ненаписані в буфер, що записується і змест будь-якого непрочитаного буфера відкидається. |
| fopen | FILE * fopen ( const char * filename, const char * mode );
Відкриває файл, ім'я якого зазначено в параметрі ім'я файлу і пов'язує його з потоком, які можуть бути ідентифіковані в майбутніх операціях по об'єкту файл, покажчик повертається. |
| remove | int remove ( const char * filename );
Якщо файл був успішно знищений, нульове значення повертається. |
| Rename | int rename ( const char * oldname, const char * newname );
|
| rewind | void rewind ( FILE * stream );
Встановлює індикатор позиції, пов'язані з потоком в початок файлу. |
| tmpfile | FILE * tmpfile ( void );
Відкрити тимчасовий файл Створює тимчасовий двійковий файл, відкритий для оновлення ( WB + режиму - див FOPEN детальніше). Файл гарантовано буде відрізнятися від будь-якого іншого існуючого файлу. Тимчасовий файл створюється автоматично видаляється, коли потік закритий ( fclose ) або коли програма завершується нормально. У разі успіху, функція повертає покажчик на потік тимчасовий файл створюється. Якщо файл не може бути створена, NULL повертається. |
Функції для операцій введення/виведення
| Ім’я | Примітка |
|---|---|
| Clearer | void clearerr ( FILE * stream );
Скидання як помилки і EOF показників потоку. |
| Ferror | int ferror ( FILE * stream );
Перевіряє, індикатор помилки, пов'язані з потоком встановлено, |
| Ffplush | int fflush ( FILE * stream );
Якщо цей потік був відкритий для запису і останньої операції введення/виведення був вихідний операції, будь-які неписані даних у вихідний буфер записується у файл. Якщо вона була відкрита для читання і остання операція була операції введення, поведінка залежить від конкретної реалізації бібліотеки. У деяких реалізаціях це викликає вхідного буфера бути очищені, але це не стандартне поведінку. Якщо аргумент є нульовим покажчиком, всі відкриті файли почервонів. Потік залишається відкритим після цього виклику. При закритті файлу, або через виклик fclose або тому, що програма завершується, всі буфери, пов'язані з його автоматично почервонів. |
| Fgetpos | int fgetpos ( FILE * stream, fpos_t * position );
зберігає позицію покажчика файлу потоку, асоційований з його першим аргументом (FILE *), в його другий аргумент (fpos_t *) |
| fgetc | повертає один символ з файлу |
| fgets | отримує рядок з файлу (що закінчується символом переведення рядка або кінця файлу) |
| fputc | записує один символ в файл |
| fputs | записує рядок в файл |
| ftell | возвращает указатель позиции файла, который может быть передан fseek |
| fseek | виробляє зміщення від поточної позиції у файлі на вказану кількість байт, або від його початку або кінця, в вказівкою напрямку. |
| fsetpos | встановлює вказівник позиції файлу потоку, асоційований з його першим аргументом (FILE *), як зберігається в другому його аргументі (fpos_t *) |
| fread | читає дані з файлу |
| fwrite | записує дані у файл |
| getc | зчитує і повертає символ з даного потоку і змінює покажчик позиції файлу, дозволяє використовувати як макрос з тими ж ефектами, що і fgetc, крім того, що може обчислювати потік більше одного разу |
| getchar | має аналогічний ефект, що і ЕОКП (STDIN) |
| gets | зчитує символи зі стандартного введення до символу переведення рядка і зберігає їх у своєму єдиному аргументі |
| printf, vprintf | використовуються для виведення в стандартний потік виведення |
| fprintf, vfprintf | використовуються для виведення в файл |
| perror | записує повідомлення про помилку в стандартний потік помилок |
| putc | записує і повертає символ в потік і змінює покажчик позиції файлу на нього, можна використовувати як макрос з тими ж властивості, що й fputc, крім того, що він може обробляти потік більше одного разу |
| putchar, fputchar | аналогічні putc (стандартний висновок) |
| scanf, vscanf | використовуються для введення зі стандартного потоку введення |
| fscanf, vfscanf | використовуються для введення з файлу |
| sscanf, vsscanf | використовуються для введення з масиву символів (тобто Рядок у мові Сі) |
| setvbuf | встановлює режим буферизації для даного потоку |
| tmpnam | створює ім'я тимчасового файлу |
| ungetc | поміщає символ назад в потік |
| puts | виводить символьну рядок у стандартний вивід |
Типи членів
Типи даних, визначені в заголовному файлі stdio.h містять:
- FILE - структура, яка містить інформацію про файл або текстовому потоці, необхідну для виконання її операцій введення і виведення операцій, включаючи:
- файловий дескриптор
- поточну позицію в потоці
- індикатор кінця файлу
- індикатор помилок
- покажчик на буфер потоку, якщо можливо
- fpos_t - не массівообразний тип, здатний унікально ідентифікувати позицію кожного байта в файлі.
- size_t - беззнакових цілий тип, є типом результату виконання оператора SizeOf.
