ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 12) онлайн
Вывод на печатающее устройство
Не составляет никаких проблем использовать консольные программы для того, чтобы посылать данные на принтер. Операционная система создает ряд специ- альных имен файлов, которые обозначают различные устройства. Тем самым делается возможной работа с устройствами как с файлами. Таблица 12.11 содер- жит все зарезервированные под устройства имена файлов.
Таблица 12.11. Имена устройств
Имя |
Устройство |
con |
Консоль (клавиатура и монитор) |
aux или com1 |
Первый последовательный порт |
com2 |
Второй последовательный порт |
prn или lpt1 |
Первый параллельный порт |
lpt2 |
Второй параллельный порт |
lpt3 |
Третий параллельный порт |
nul |
Фиктивное (несуществующее) устройство |
В большинстве систем принтер подключен к первому параллельному порту, поэтому имя принтера — prn или lpt1 (понятно, что в случае, если ваша система настроена иначе, надо использовать другое имя).
Следующая программа посылает строку и число на принтер, используя фор- матированный вывод (оператор вставки).
Листинг 12.23. Программа EZPRINT
// ezprint.cpp
// Простой вывод на принтер
#include <fstream> // Для файловых потоков
using namespace std;
int main()
{
char* s1 = "\nСегодня ваше счастливое число -- ";
int n1 = 17982;
ofstream outfile; // создать выходной файл
outfile.open("PRN"); // открыть принтеру доступ к нему
outfile << s1 << n1 << endl; // послать данные на принтер
outfile << '\x0C'; // прогнать лист до конца
return 0;
}
Таким способом на принтер можно послать сколько угодно строк. Служеб- ный символ '\ x0C ' осуществляет прогон страницы.
Следующая программа распечатает для вас содержимое дискового файла на принтере. В ней используется посимвольный подход к передаче данных.
Листинг 12.24. Программа OPRINT
// oprint.cpp // имитация команды print
Листинг 12.24 (продолжение)
#include <fstream> // для файловых функций
#include <iostream>
using namespace std;
#include <process.h> // для exit()
int main(int argc, char* argv[] )
{
if(argc != 2)
{
cerr << "\nФормат команды: oprint имя_файла\n";
exit(-1);
}
char ch; // символ для считывания
ifstream infile; // создать входной файл
infile.open( argv[1] ); // открыть файл
if( !infile ) // проверить на наличие ошибок
{
cerr << "\nНевозможно открыть " << argv[1] << endl;
exit(-1);
}
ofstream outfile; // Создать файл
outfile.open("PRN"); // открыть доступ принтера к нему
while( infile.get(ch) != 0 ) //считать символ
outfile.put(ch); // отправить символ на печать
outfile.put('\x0C'); // прогон страницы
return 0;
}
Эта программа может быть использована для печати любых текстовых фай- лов, например исходных текстов программ .cpp. Она очень похожа на команду print из операционной системы MS DOS. Как и предыдущие, программа прове- ряет корректность количества аргументов и правильность открытия файла.
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Схожі підручники
- Управлінський облік (частина 1)
- ГРОШІ І КРЕДИТ (частина 1)
- Реферат на тему « Особливості та недоліки оподаткування операцій з недержавного пенсійного забезпечення в Україні »
- Управлінський облік (частина 2)
- Курс Банківська Система
- ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 9) онлайн