История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Программа 29. Копирование файлов

2018-01-03 201
Программа 29. Копирование файлов 0.00 из 5.00 0 оценок
Заказать работу

Вверх
Содержание
Поиск

В приводимой далее программе открываются два файловых потока: один на чтение, другой на запись. Из входного файла производится построчное чтение, прочитанные строки выводятся на экран и в выходной файл. После чтения каждых 20 строк программа останавливается и ждет нажатия клавиши Enter.

// Файл CopyFile.cpp

// Файловый ввод и вывод

#include <fstream.h>

#include <conio.h>

#include <stdlib.h> // Для exit

const int PAGE = 20; // Максимальное число строк на странице

const int MAXLEN = 200; // Максимальная длина строки

const int LenName = 13; // Длина строки с именем файла

void main()

{

ifstream fin; // Файловый поток для ввода

ofstream fout; // Файловый поток для вывода

char filename[LenName]; // Массив для имени файла

char line[MAXLEN]; // Массив для строк

cout << "\nВведите имя входного файла ";

cin >> filename;

fin.open(filename);

if(!fin){ // Если не удалось открыть входной файл

cerr << "Не удалось открыть файл " << filename;

exit(1);

}

cout << "\nВведите имя выходного файла ";

cin >> filename;

fout.open(filename);

if(!fout){ // Если не удалось открыть выходной файл

cerr << "Не удалось открыть файл " << filename;

exit(1);

}

int i = 0; // Количество прочитанных строк

cin.get(); // Убираем код из cin

while(!fin.eof()){ // Пока не достигнут конец файла

fin.getline(line, MAXLEN); // Чтение строки из файла

i++; // Увеличение счетчика

cout << line << '\n'; // Вывод строки на экран

fout << line << '\n'; // Вывод строки в файл

if(i % PAGE == 0) // Если выведена очередная страница,

cin.get(); // ждем нажатия клавиши Enter

}

fin.close(); // Закрытие входного файла

fout.close(); // Закрытие выходного файла

getch();

}

Программа запрашивает имя входного файла и пытается открыть его на чтение. При открытии файла возможна неудача, например из-за неправильно указанного имени, в этом случае программа завершается вызовом exit.

Если входной файл удалось открыть, запрашивается имя выходного файла и он открывается на запись. Здесь тоже возможна неудача, например, потому, что файл с указанным именем существует и открыт другой программой. В этом случае также вызывается функция exit, которая корректно завершит программу, закрыв ранее открытый входной файл.

Предварительный вызов cin.get() перед циклом while нужен по следующей причине. При выполнении инструкции:

cin >> filename;

оператор >> пропускает начальные пробелы, затем читает символы имени файла и заносит их в массив filename. Чтение набранных на клавиатуре символов заканчивается при поступлении любого пробельного символа, в том числе символа “новая строка”, который остается в буфере клавиатуры. Именно этот символ и извлекается из буфера с помощью cin.get(). Если этого не сделать перед циклом, то новая строка будет прочитана внутри цикла, в результате на экран будут выведены две порции из PAGE строк, а не одна.

Командная строка

Командная строка позволяет взаимодействовать с операционной системой путем ввода различных команд. В операционной системе DOS командная строка была основным способом управления компьютером, что было неудобно тем, что приходилось запоминать названия большого числа команд и их параметры. В операционной системе Windows командная строка скрыта за графическим интерфейсом, который спроектирован так, чтобы быть интуитивно понятным и не требовать от пользователя знания команд операционной системы. Однако командная строка не исчезла совсем. Она связана с любым ярлыком на Рабочем столе Windows и запускает программу, связанную с этим ярлыком. Ее можно увидеть, посмотрев свойства ярлыка.

В Windows оставлена возможность непосредственно запускать программы с помощью командной строки в окне, моделирующем работу DOS, которое открывается командой Пуск, Программы, Стандартные, Командная строка. Для однократного выполнения какой либо команды можно командой Пуск, Выполнить открыть окно Запуск программы, рис.24, где ввести командную строку или вручную, или выбрав нужную программу с помощью кнопки Обзор. На рис.24 показана командная строка для запуска программы 13, расположенной в файле Receipts.exe.

Рис.24. Запуск программы с помощью командной строки

При работе в TC программы можно запускать непосредственно из интегрированной среды командой меню Run, Run или комбинацией клавиш Ctrl+F9, но иногда нужно опробовать запуск программы из командной строки. Для этого в TC предусмотрен выход в среду операционной системы с помощью команды File, DOS shell. После выполнения данной команды будет предъявлен текстовый экран, внизу которого расположена командная строка с курсором, рис.25. Здесь можно вводить команды и запускать их на выполнение нажатием Enter.

Рис.25. Экран Dos shell в TC

Команда dir выводит на экран полное содержимое текущего каталога. Чтобы показать нужную группу файлов, в команде dir следует указать маску файлов, например, команда

...> dir *.exe

выведет имена исполняемых файлов. Звездочка в командах заменяет произвольный набор символов в именах файлов. Результат выполнения этой команды виден на рис. 25.

Любую из созданных программ можно выполнить, набрав ее имя в командной строке, например, команда

…>AllocMem.exe

запустит на выполнение программу AllocMem.exe. Заметим, что DOS считает большие и малые буквы одинаковыми.

Для возврата из режима командной строки в среду TC нужно выполнить команду exit.


Поделиться с друзьями:

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...



© cyberpedia.su 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.012 с.