русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Файловые функции обработки строк


Дата добавления: 2013-12-23; просмотров: 919; Нарушение авторских прав


При работе со строками используются функции fgets(), fputs().

Необходимо помнить о нестандартном представлении строки в языке С, С++, в котором концом строки считается нулевой байт. Большинство других программ, например, текстовые редакторы, программы отображения текстов и т.п. системные программы, концом строки считают ENTER (символ ‘\n’). Т.к. функции ввода / вывода связывают программу на С с «внешней средой», то необходимо выполнять перекодировку символа «конец строки». Рисунок 1 показывает этот процесс.

Запись строк в файл – функция fputs.

Прототип функции:

int fputs (char* str, FILE *fp);

Здесь первый параметр – это указатель на строку, второй – указатель на файл, возвращаемое значение – признак ошибки (NULL – если ошибка, ненулевое значение в противном случае).

 

Рисунок 1

У функции fputs() есть одна особенность - она не добавляет код \n (ENTER), поэтому его необходимо вводить дополнительным действием.

Пример 15. создать текстовый файл. Ввод закончить при вводе «пустой строки»

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

void main()

{ FILE *fp;

char name[20]; //строка для имени

if ((fp = fopen(“myfile.txt”, “w”)==NULL)

{ puts(“Nevozmogno otkrit’ file”);

exit(1)

}

while(.t.) //бесконечный цикл

{ printf(“Vvedite imya”);

gets (name); //ввод строки с клавиатуры

if (strlen(name)==0) break; //выход из цикла

fputs (name, fp); //вывод строки в файл

fput(“\n”, fp); //записать «конец строки» в файл

}

fclose(fp); //закрыть файлы

}

 

Функция strlen() – возвращает длину строки.

Для того, чтобы напечатать строку на принтере, вместо имени файла используется стандартное имя для принтера «prn»:

if ((fp=fopen (“prn”, “w”)) == NULL)

Чтение строк из файла – функция fgets().



Функция вводит строку из файла до символа «конец строки» (\n). Прототип функции:

char* fgets (char* str_var, int length, FILE *fp);

Здесь str_var – указатель на строку, length – ограничитель длины строки, fp – указатель на файл.

Функция возвращает указатель на введенную строку в случае успеха и нулевой указатель в противном случае.

Пример 16. Чтение строк из файла, созданного в Примере 15

#include <stdio.h>

void main()

{ FILE *fp;

char name[20]; //строка для имени

if ((fp = fopen(“myfile.txt”, “r”)==NULL)

{ puts(“Nevozmogno otkrit’ file”);

exit(1)

}

while(fgets(name, 20, fp)!=NULL)

printf(name);

fclose(fp); //закрыть

}

Обратим внимание, что для указания конца файла используется:

- при построчном чтении fgets() – NULL,

- при посимвольном чтении getс(), fgetс() – EOF.

 

Форматированный ввод – вывод, использование функции fprintf()

Формат функции fprintf() такой же, как у функции printf(), с той лишь разницей, что добавляется параметр для указания рабочего файла.

Пример 17.

#include <stdio.h>

void main()

{ FILE *fp;

char name[20]; //строка для имени

int quantity;

float cost;

if ((fp = fopen(“myfile.txt”, “w”)==NULL)

{ puts(“Nevozmogno otkrit’ file”);

exit(1)

}

printf(“Naimenovanie tovara”);

qets(name); //ввод с клавиатуры

while(strlen(name)>0)

{ printf(“Zena tovara”); //вывод на экран

scanf(“%f”, &cost);

printf(“Kolichestvo ediniz tovara”);

scanf(“%d”, quantity);

//форматированный вывод в файл

fprintf(fp, “%s \t %6.2 f \t %d \n”, name, cost, quantity);

printf(“Naimenovanie tovara”);

qets(name);

}

fclose(fp); //закрыть

}

 

Обратим внимание, что код «новая строка» записывается в файл в конце каждой строки. Если посмотреть содержимое файла с помощью текстового редактора, то каждая строка на экране будет начинаться с новой строки:

Дискеты 1.12 100

Лента 7.34 150

картридж 75.00 3

 



<== предыдущая лекция | следующая лекция ==>
Четыре этапа работы с файлами | Открытие потока


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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