|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Функции ввода/выводаПростейший способ выполнить чтение из файла или запись в файл – использовать функции fgetc() или fputc(). Функция fgetc() выбирает из файла очередной символ; ей нужно только знать указатель на файл, например: char Symb=fgetc(fin); Если при обработке достигается конец файла, то функция fgetc() возвращает значение EOF(end of file). Функция fputc() заносит значение символа Symb в файл, на который указывает указатель out. Формат вызова функции: f putc(Symb,out); Пример 1. Текст из файла my_char.txtвыводится на экран. Если файл не найден, на экран выводится сообщение "File not found!": #include "stdafx.h" int main() { FILE *ptr; //описание указателя на файл char ch; if ((ptr= fopen( " my_char.txt ", " r " ))!=NULL)/*открытие файла для чтения*/ { ch=fgetc(ptr); //чтение первого символа из файла while (!feof(ptr)) //цикл пока не достигнут конец файла { printf("%c",ch); //вывод символа, взятого из файла ch=fgetc(ptr); //чтение следующего символа из файла } fclose(ptr); //закрытие файла } else printf("\nFile not found!"); return 0; }
В этом примере для чтения файла используется указатель ptr. При открытии файла производится проверка. Если переменной ptr присвоено значение NULL, то файл не найден; на экран выводится соответствующее сообщение, и программа завершается. Если ptr получил ненулевое значение, то файл открыт. Далее выполняется чтение символов из файла до тех пор, пока не будет достигнут конец файла (!feof(ptr)). Прочитанный символ помещается в переменную ch, а затем выводится на экран. Пример 2. Записать в файл буквы, вводимые с клавиатуры. Ввод продолжается до нажатия клавиши F6 или CTRL/z (ввод символа EOF – конца файла): #include "stdafx.h" int main(void) { char c; FILE *out; // описание указателя на файл out=fopen( " Liter.txt ", " w " ); //открытие файла для записи while ((c=getchar())!=EOF) /*пока не будет введен символ конца */ fputc(c,out); // запись введенного символа в файл fclose(out); //закрытие файла return 0; }
Функция fgets() читает строку символов из файла. Она отличается от функции gets() тем, что в качестве второго параметра должно быть указано максимальное число вводимых символов плюс единица, а в качестве третьего - указатель на переменную файлового типа. Строка считывается целиком, если ее длина не превышает указанного числа символов, в противном случае функция возвращает только заданное число символов. Рассмотрим пример: fgets(string, n, fp); Функция возвращает указатель на строку string при успешном завершении и константу NULL в случае ошибки либо достижения конца файла. Функция fputs() записывает строку символов в файл. Она отличается от функции puts() тем, что в качестве второго параметра должен быть записан указатель на переменную файлового типа. Например: fputs("Ехаmple", fp); При возникновении ошибки возвращается значение EOF. Пример 3. Имеется текстовый файл. Определить длины строк этого файла: #include <string.h> #include <iostream>
int _tmain(int argc, _TCHAR* argv[]) { setlocale(0,"RUS"); char st[125]; int a=0; FILE *fo; fo = fopen( " prim.txt ", " r " ); //открытие файла для чтения while (!feof(fo))//цикл пока не конец файла { fgets(st,125,fo); //читать строку символов if (!feof(fo)) //если не конец файла { a=strlen(st); //определить длину строки printf("Длина:%d строка:%s \n",a,st); } } fclose(fo); return 0; }
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |