Fclose(fp); // закрыли файл
После закрытия файла указатель fp может быть использован для открытия другого файла.
Примеры использования стандартных функций, оперирующих с файлами, приведены ниже.
FILE *fp; int x; char buf[30], b;
fp=fopen(«ABC.TXT», «rt»); //открыли файл для чтения
// fp=NULL – ошибка
fscanf(fp, «%d», &x); //считали значение переменной х
n=fgets(buf, 30, fp); // считали строку из файла
// n=0 – конец файла
b=getc(fp); // считали символ
//b=EOF – конец файла
fprintf(fp, «x=%d», x); // записали значение переменной
Fputs(buf, fp); // записали строку
Putc(b, fp); // записали символ
Fclose(fp); // закрыли файл
При написании программ на языке СИ часто используют передачу параметров в программу непосредственно при ее запуске, например:
Name input.txt output.txt
где name - имя исполняемого файла задачи (name.exe). При этом функция main() должна быть оформлена в виде:
main(int argc,char* argv[])
{
…
При запуске программы с командной строкой параметр argc получает значение, равное количеству параметров в строке (включая имя задачи), а элементы массива argv – адреса строк - параметров. Например, для вышеприведенного примера
argс = 3;
argv[0] = "name";
argv[1] = "input.txt";
argv[2] = "output.txt";
3. Методические указания
В лабораторной работе требуется написать две программы для обработки текстовых файлов. Одна из них выполняет построчную, другая посимвольную обработку. Ввод параметров должен быть организован в командной строке запуска программы.
|
|
Исходный файл должен быть создан с помощью любого текстового редактора. При обработке текста рекомендуется использовать функции из стандартной библиотеки СИ для работы со строками, преобразования и анализа символов.
4. Порядок выполнения работы
4.1. Написать программу, обрабатывающую текстовый файл и записывающую обработанные данные в файл с таким же именем, но с другим типом (табл. 6.1)
4.2. Написать программу, выполняющую посимвольную обработку текстового файла (табл. 6.2.).
Ввод параметров организовать в командной строке запуска программы.
Таблица 6.1
Вари ант | Задание | Параметры командной строки |
1 | Исключить строки с длиной, больше заданной | 1. Имя входного файла 2. Заданная длина строки |
2 | Оставить только строки, начинающиеся с латинских букв | 1. Имя входного файла 2. Количество обрабатываемых строк |
3 | Исключить строки, начинающиеся с заданного слова | 1. Имя входного файла 2. Заданное слово |
4 | Оставить строки, начинающиеся с заданной буквы | 1. Имя входного файла 2. Заданная буква |
5 | Исключить строки с количеством пробелов, больше заданного числа | 1. Имя входного файла 2. Заданное количество пробелов |
6 | Оставить строки, не содержащие цифры | 1. Имя входного файла 2. Количество обрабатываемых строк |
7 | Исключить строки, начинающиеся заданной парой символов | 1. Имя входного файла 2. Заданная пара символов |
8 | Оставить строки, заканчивающиеся цифрами | 1. Имя входного файла 2. Максимальная длина строки |
9 | Исключить строки, содержащие хотя бы один заданный символ | 1. Имя входного файла 2. Заданный символ |
10 | Оставить строки, содержащие заданное количество цифр | 1. Имя входного файла 2. Заданное количество цифр |
11 | Исключить строки, содержащее заданное слово | 1. Имя входного файла 2. Заданное слово |
12 | Оставить строки, где все слова имеют длину больше указанной | 1. Имя входного файла 2. Длина слова |
13 | Исключить строки, начинающиеся и заканчивающиеся заданным символом | 1. Имя входного файла 2. Заданный символ |
14 | Оставить строки, заканчивающиеся заданным словом | 1. Имя входного файла 2. Заданное слово |
15 | Исключить строки, не содержащие ни одного заданного символа | 1. Имя входного файла 2. Заданный символ |
16 | Оставить строки, где все слова имеют длину меньше указанной | 1. Имя входного файла 2. Длина слова |
17 | Исключить строки, в которых есть слова короче указанной длины | 1. Имя входного файла 2. Длина слова |
18 | Оставить строки, в которых указанное слово встречается более одного раза | 1. Имя входного файла 2. Заданное слово |
19 | Исключить строки, в которых есть хотя бы один не алфавитно-цифровой символ | 1. Имя входного файла 2. Количество обрабатываемых строк |
20 | Оставить строки с количеством слов, меньшим указанного | 1. Имя входного файла 2. Количество слов |
|
|
|
|
Таблица 6.2
Вариант | Задание | Параметры командной строки |
1 | Удалить из текста заданный символ | 1. Имя входного файла 2. Заданный символ |
2 | В конце каждой строки вставить заданный символ | 1. Имя входного файла 2. Заданный символ |
3 | Заменить цифры на пробелы | 1. Имя входного файла 2. Количество замен |
4 | Заменить знаки на заданный символ | 1. Имя входного файла 2. Заданный символ |
5 | Заменить каждый пробел на два | 1. Имя входного файла 2. Количество замен |
6 | После каждой точки вставить символ ‘\n’ | 1. Имя входного файла 2. Количество замен |
7 | Удалить из текста все пробелы | 1. Имя входного файла 2. Количество замен |
8 | Заменить заданные символы на пробелы | 1.Имя входного файла 2. Заданный символ |
9 | После каждого пробела вставить точку | 1.Имя входного файла 2. Количество вставок |
10 | Заменить все пробелы первым символом текста | 1. Имя входного файла 2. Максимальное количество замен |
11 | Во всех парах одинаковых символов второй символ заменить на пробел | 1. Имя входного файла 2. Количество замен |
12 | Заменить на пробелы все символы, совпадающие с первым символом в строке | 1. Имя входного файла 2. Количество замен |
13 | Заменить заданную пару букв на символы #@ | 1. Имя входного файла 2. Заданная пара букв |
14 | Заменить все цифры заданным символом | 1. Имя входного файла 2. Заданный символ |
15 | Заменить на пробел все символы, совпадающие с последним символом в строке | 1. Имя входного файла 2. Количество замен |
16 | Заменить все символы с кодами меньше 48 на пробелы | 1. Имя входного файла 2. Количество замен |
17 | Заменить все символы с кодами больше 48 на пробелы | 1. Имя входного файла 2. Количество замен |
18 | Заменить каждый третий символ на пробел | 1. Имя входного файла 2. Количество замен |
19 | Заменить все пробелы на заданный символ | 1. Имя входного файла 2. Заданный символ |
20 | Заменить все пары одинаковых символов на пробелы | 1. Имя входного файла 2. Количество замен |
|
|
5. Содержание отчета
5.1. Задание.
5.2. Листинги программ по пп.4.1 и 4.2.
5.3. Тестовый пример.
6. Контрольные вопросы
6.1. Назначение указателя FILE*.
6.2. Стандартные функции открытия/закрытия файлов.
6.3. Стандартные функции для построчной обработки файлов.
6.4. Стандартные функции для посимвольной обработки файлов.
6.5. Стандартные функции работы со строками.
6.6. Буферизованный и небуферизованный ввод/вывод.
6.7. Передача параметров в программу при ее запуске.
6.8. Проверка корректности выполнения операций файлового ввода-вывода.
6.9. Режимы открытия файлов.
6.10. Перенаправление стандартного ввода/вывода.
ЛИТЕРАТУРА
1. В. Керниган, Я. Ритчи. Язык программирования Си. М.: Мир, 1988.
2. И. Уэйт, С. Прата, Д. Мартин. Язык Си. Руководство для начинающих. М.: Мир, 1988.
3. Н. Джехани. Программирование на языке Си. М.: Радио и связь, 1968.
4. Р. Берри, Б. Ликинз. Язык Си. Введение для программистов. М.: Финансы и статистика, 1988.
5. М. Дансмур, Г. Дейвис. ОС UNIX и программирование на языке Си. М.: Радио и связь, 1989.
6. М. Болски. Язык программирования Си: Справочник. М.: Радио и связь, 1988.
7. Л.М. Романовская и др. Программирование в среде СИ для ПЭВМ ЕС. М.: Финансы и статистика, 1992.
8. В. В. Подбельский, С. С. Фомин. Программирование на языке Си. М: Финансы и статистика, 2000.
ПРОГРАММИРОВАНИЕ, часть 1
Методическое руководство
Редактор
Технический редактор
Лицензия № _________ от __.__.__. Подписано в печать ___.___.___.
Формат 60 х 84 1/16. Бумага оберточная. Тираж 200 экз.
Уч.-изд.л. 1. Печ.л. 1,5. Изд. № ______. Заказ № ______ Цена договорная
Отпечатано в типографии
Дата добавления: 2018-04-15; просмотров: 362; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!