Обратите внимание на возможную ошибку
for(j=10; j>0; j--) {
fscanf(f,"%s %d %f",s,&k,&d);
fprintf("\n%s %d %f",s,k,d); }
getch () ; }
Обратите внимание на возможную ошибку при наборе программы 7_01.с. Если между форматными указателями %з и %d не сделать пробел, то в файле текст "строка" склеится с последующим целым числом. После этого при чтении в переменную s будут попадать строки вида "строка!", "строка2", ..., "строкаю", в переменную k будут считываться старшие цифры корня из j (до символа "точка"), а в переменной d скажутся дробные разряды соответствующего корня.
Записеориентированные файлы в Си
Записеориентированный файл является частным случаем двоичного файла, в котором в качестве порции обмена выступает структура Си, являющаяся точным аналогом записи в Паскале.
Для инициализации записеориентированного файла необходимо завести указатель на структуру типа FILE и открыть файл в одном из нужных режимов ("rb" — для ввода, "wb" — для вывода, "ab" — для дозаписи в уже существующий набор данных) по оператору f open:
FILE *f11;
f1=fopen(имя_файла, "режим");
Формат оператора вывода данных в записеориентированный файл таков:
fwrite(buf, size_rec, n_rec, f1) ;
Здесь size_rec — размер записи в байтах, а п_гес — количество записей, участвующих в обмене. Считывание данных из записеориентированного файла осуществляется с помощью функции f read:
fread(buf, size_rec, n_rec, f1);
Программа 7_02.с в цикле формирует значение записи b, состоящей из символьного (b.s, 7 байт, включая нулевой байт — признак конца строки), целочисленного (b.n, 2 байта) и вещественного (b.r, 4 байта) полей, и выводит содержимое полей на диск последовательными порциями. Затем файл открывается для ввода и содержимое записей извлекается в обратном порядке. Второй аргумент функции fseek определяет величину смещения указателя файла в байтах относительно точки, заданной третьим параметром. Параметр SEEK_SET
означает, что сдвиг указателя в файле производится от его начала. Для сдвига от конца файла используется константа SEEK_END, а для сдвига относительно текущей позиции — константа SEEK_CUR.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий