Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015

Здесь есть возможность читать онлайн «Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Год выпуска: 0101, Издательство: Вильямс, Жанр: Старинная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Язык программирования C. Лекции и упражнения (6-е изд.) 2015: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Язык программирования C. Лекции и упражнения (6-е изд.) 2015», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Предположим, что исполняемый файл называется reducto, и мы применяем его к файлу по имени Eddy, который содержит единственную строку:

So even Eddy came oven ready.

Команда имеет такой вид:

reducto eddy

Вывод записывались в файл по имени eddy. red. Программа ничего не выводит на экран, но отображение содержимого eddy, red должно выявить следующее:

Send money

Этот пример иллюстрирует несколько приемов программирования. Давайте рассмотрим некоторые из них.

Функция fprintf() подобна printf() за исключением того, что она требует передачи в первом аргументе указателя файла. Мы использовали указатель stderr для отправки сообщений об ошибках в стандартный вывод ошибок; это стандартная практика в С.

Чтобы сконструировать новое имя для выходного файла, в программе применяется функция strncpy() для копирования имени eddy в массив name. Аргумент LEN - 5 оставляет место для суффикса .red и завершающего нулевого символа. Нулевой сим-

542 Глава 13 вол не копируется, если длина строки argv[2] больше LEN - 5, поэтому на всякий случай добавляется нулевой символ. После вызова strncpy() первый нулевой символ в name перезаписывается символом точки из .red, когда функция strcat() добавляет эту строку, давая в результате eddy.red. Кроме того, в программе предусмотрена проверка, удалось ли открыть файл с именем eddy.red. Это особенно важно в определенных средах, где имя файла наподобие strange.с.red может быть недопустимым. Например, в традиционной системе DOS нельзя добавлять расширение к расширению. (Подход, подходящий для MS-DOS, предполагает замену любого существующего расширения вариантом . red, так что уплотненной версией strange. с будет strange, red. Можно было бы воспользоваться функцией strchr(), чтобы найти точку в имени, если она есть, и копировать только часть строки до точки.)

В программе имеются два одновременно открытых файла, из-за чего объявлены два указателя на FILE. Обратите внимание, что файлы открываются и закрываются независимо друг от друга. Существует предельное количество одновременно открытых файлов, которое зависит от системы и реализации; часто этот предел находится в диапазоне от 10 до 20. Один и тот же указатель файла можно использовать для разных файлов при условии, что эти файлы не открываются в одно и то же время.

Файловый ввод-вывод: fprintf(),

fscanf(), fgets() И fputs()

Для каждой функции ввода-вывода из предшествующих глав имеется похожая функция файлового ввода-вывода. Главное отличие между ними заключается в том, что функциям файлового ввода-вывода с помощью указателя на FILE необходимо сообщать, с каким файлом работать. Подобно getc() и putc(), эти функции требуют идентификации файла с применением указателя на FILE, такого как stdout, либо использования возвращаемого значения fopen().

ФУНКЦИИ fprintf() И f scanf()

Функции файлового ввода-вывода fprintf() и fscanf() работают аналогично printf() и scanf(), отличаясь только наличием дополнительного первого аргумента, в котором идентифицируется подходящий файл. Вы уже применяли функцию fprintf(). В листинге 13.3 демонстрируется работа функций файлового ввода-вывода наряду с функцией rewind().

Листинг 13.3. Программа addaword.c

addawordc использование fprint fscanf и rewind include include - фото 413/* addaword.c — использование fprint() fscanf() и rewind() */

#include

#include

#include

#define MAX 41

int main (void)

(

FILE * fp; char words[MAX];

if ((fp = fopen("wordy", "a+")) == NULL)

{

fprintf(stdout, " He удается открыть файл \"wordy\",\n"); exit(EXIT_FAILURE);

}

Файловый ввод-вывод 543

Эта программа позволяет добавлять слова в файл За счет использования режима - фото 414

Эта программа позволяет добавлять слова в файл. За счет использования режима "а+" программа может осуществлять чтение и запись в файл. При первом запуске она создает файл wordy и позволяет помещать в него слова по одному в строке. При последующем запуске программа позволяет добавлять (дописывать) слова к существующему содержимому. Режим добавления разрешает только дописывать данные в конец файла, но режим "а+" позволяет читать весь файл. Функция rewind() обеспечивает перемещение в начало файла, так что финальный цикл while может вывести содержимое файла. Обратите внимание, что rewind() принимает указатель файла в качестве аргумента.

Ниже приведены результаты пробного запуска в среде Unix (исполняемый файл был переименован в addaword):

$ addaword

Введите слова для добавления в файл; для завершения введите символ # в начале строки.

Один талантливый программист #

Содержимое файла:

Один

талантливый программист Готово!

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»

Представляем Вашему вниманию похожие книги на «Язык программирования C. Лекции и упражнения (6-е изд.) 2015» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Язык программирования C. Лекции и упражнения (6-е изд.) 2015»

Обсуждение, отзывы о книге «Язык программирования C. Лекции и упражнения (6-е изд.) 2015» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x