Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Увага!!! При відкритті не забути вказати, що файл двійковий (b)

Define MAXLIN 80

Фрагмент 2

if((fp=fopen("F.txt","r"))!=NULL)

{

while(fscanf(fp,"%d %s ",&j,str)!=EOF)

cout<<"j="<<j<<"str="<<str;

}

Помітимо, що можна було використовувати fi для двох різних файлів, тому що ми закрили перший файл, перш ніж відкрити другий. На відміну від getc() і putc() ці дві функції одержують вказівник типу FILE у якості першого аргументу. Дві інші, описані нижче, одержують його як останній аргумент.

Функція fgets()

Ця функція має три аргументи, у той час як gets () має один.

#include <stdio.h>

main()

(

FILE *fl;

char *string[MAXLIN];

fl = fopenf (“story", " r");

while (fgets(string, MAXLIN, fl)!= NULL) puts(string);

}

Перший із трьох аргументів функції fgets() є вказівником на місце розташування зчитуваного рядка. Ми розташовуємо введену інформацію всимвольному масиві string.

Другий аргумент містить граничну довжину зчитуваного рядка. Функція припиняє роботу після зчитування символу нового рядка або після зчитування символів загальним числом MAXLIN - 1 (залежно від того, що відбудеться раніше). У кожному разі нуль-символ ('\0') додається в самий кінець рядка.

Третій аргумент указує на файл, який буде читатися.

Різниця між gets() і fgets () полягає в тому, що gets() заміняє символ нового рядка на ' \0', у той час як fgets() зберігає символ нового рядка, якщо він був прочитаний.

Подібно gets() функція fgets() повертає значення NULL, якщо зустрічає символ EOF. Це дозволяє перевірити досягнення кінця файлу.

Функція fputs()

Ця функція дуже схожа на puts(). Її синтаксис

status = fputs (вказівник рядка, вказівник файлу);

де status є цілим числом, яке встановлюється в EOF, якщо fputs() зустрічає EOF або помилку.

fputs (" Ви були праві.”, fileptr);

передає рядок " Ви були праві." у файл, на який посилається вказівник flleptr типу FILE. Звичайно, спочатку потрібно відкрити файл за допомогою функції fopen(

Подібно puts() ця функція не ставить завершальний символ ' \0' у кінець скопійованого рядка. На відміну від puts() функція fputs() не додає символ нового рядка в файл.

Неформатований ввід/вивід.

fread (<рядок куди>,<по скільки байт>,<скільки блоків>,<вказівник на файл звідки>); повертає число прочитаних блоків або 0 у випадку помилки або кінця файлу.

fwrite (<рядок звідки>,<по скільки байт>,<скільки блоків>,<вказівник на файл звідки>); повертає число записаних блоків або 0 у випадку помилки.

 

ДОВІЛЬНИЙ ДОСТУП: fseek()

Функція fseek() дозволяє нам обробляти файл подібно масиву й безпосередньо досягати будь-якого певного байта у файлі, відкритому функцією fopen (). Помітимо, що fseek () має три аргументи й повертає значення типу int.

/' використання fseek() для друку вмісту файлу */

#include <stdio.h>

main()

int number;

char names[80];

{

FILE *fp;

cin>>names;

long offset = 0L; /* зверніть увагу, що це тип long */

if ((fp = fopen (names, "r")) = = 0)

printf (“ Я не можу відкрити %s.\n", names);

<== предыдущая лекция | следующая лекция ==>
Статеві розлади у жінок | Лекція №11. while ( fseek (fp, offset++, 0) = = 0)
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 202; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.