Научная статья на тему 'ПЕРЕНАПРАВЛЕНИЕ СТАНДАРТНЫХ ПОТОКОВ ВВОДА-ВЫВОДА В C++'

ПЕРЕНАПРАВЛЕНИЕ СТАНДАРТНЫХ ПОТОКОВ ВВОДА-ВЫВОДА В C++ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
135
13
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЯЗЫК ПРОГРАММИРОВАНИЯ С++ / ПОТОКИ ВВОДА-ВЫВОДА / ПЕРЕНАПРАВЛЕНИЕ ПОТОКОВ / PROGRAMMING LANGUAGE C++ / INPUT-OUTPUT STREAMS / REDIRECTION STREAMS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Дмитриев В. Л., Суханов С. П.

В работе кратко рассматривается возможность перенаправления стандартных потоков ввода-вывода в языке программирования С++, связанных с клавиатурой и экраном, в зависимости от текущей ситуации. Для демонстрации такой возможности приводится код программы с необходимыми пояснениями.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

REDIRECTION OF STANDARD STREAMS FOR INPUT-OUTPUT IN C++

In the work briefly to considered of capability redirect the standard streams for input-output within the C++ programming language associated with the keyboard and screen, depending on the current situation. To demonstrate this possibility provides the program code with explanation.

Текст научной работы на тему «ПЕРЕНАПРАВЛЕНИЕ СТАНДАРТНЫХ ПОТОКОВ ВВОДА-ВЫВОДА В C++»

женщина приняла решение о том, что она будет делать карьеру, тем успешнее проходит ее должностное продвижение.

Таким образом можно говорить о влиянии системы актуальных ценностей начальника на реализацию его профессиональных функций, в частности на реализацию кадровой политики организации. Также о динамике данных ценностей, которые имеют возрастную и гендерную зависимость. Это в свою очередь влияет на результаты набора и отбора персонала. Если это будет рассогласовано с кадровой политикой, то это заблокирует возможность управления по ценностям, поставит под удар мотивационное ядро организации и результативность деятельности как таковой.

Использованные источники:

1. Бураканова Г.А. Стиль руководителя и эффективность управления/ Г.А. Бураканова // Проблемы теории и практики управления.- 2011.- №4. - С. 112117.

2. Димитрюк А.А. К вопросу о классификации требований к работодателю в контексте маркетинга персонала Вестник БГТУ им. В.Г. Шухова - 2015, № 1, С. 84-87

3. Долан, С. С.Гарсия. Управление на основе ценностей. - М.: Претекст, 2013.

УДК 004.424

Дмитриев В.Л., к.ф.-м.н.

доцент

кафедра «Прикладная информатика и программирование»

Суханов С.П. студент 4 курса

факультет «Математики и информационных технологий»

Стерлитамакский филиал Башкирский государственный университет

Россия, г. Стерлитамак

ПЕРЕНАПРАВЛЕНИЕ СТАНДАРТНЫХ ПОТОКОВ ВВОДА-ВЫВОДА

В C++

В работе кратко рассматривается возможность перенаправления стандартных потоков ввода-вывода в языке программирования С++, связанных с клавиатурой и экраном, в зависимости от текущей ситуации. Для демонстрации такой возможности приводится код программы с необходимыми пояснениями.

Ключевые слова: язык программирования С++, потоки ввода-вывода, перенаправление потоков

Dmitriev V.L., Ph.D. (Physics and Mathematics), associate professor associate professor of the department of applied informatics and

programming

Sterlitamak branch of the Bashkir state University

Russia, Sterlitamak Suhanov S.P. student

the 4th course, the faculty of mathematics and information technology

Sterlitamak branch of the Bashkir state University

Russia, Sterlitamak

REDIRECTION OF STANDARD STREAMS FOR INPUT-OUTPUT

IN C++

In the work briefly to considered of capability redirect the standard streams for input-output within the C++ programming language associated with the keyboard and screen, depending on the current situation. To demonstrate this possibility provides the program code with explanation.

Key words: the programming language C++, input-output streams, redirection streams

Обсуждение вопросов ввода-вывода в С++ представляет собой определенную проблему. Дело в том, что, во-первых, практически любая программа использует ввод и вывод, но средства ввода-вывода в С++ традиционно разрабатывались лишь для работы с несколькими встроенными типами данных. Во-вторых, С++ (как и С) не имеет операций ввода и вывода, встроенных в сам язык.

Для организации ввода-вывода С++ использует набор классов, определенных в заголовочных файлах iostream и fstream, поставляющихся со стандартными библиотеками классов [1-4].

Программа на С++ воспринимает ввод и вывод как потоки байтов. Байты входного потока могут поступать с клавиатуры, от другой программы или от других устройств хранения (например, жесткого диска). Аналогично, байты выходного потока могут передаваться на экран, принтер, отправляться другой программе, или другое устройство хранения.

Для стандартных потоков установленную по умолчанию связь с клавиатурой или экраном можно разорвать, и перенаправить ввод-вывод данных, например, в файловый поток [1]. Перенаправление стандартных потоков можно выполнять также непосредственно в программе. Ниже приведен пример простой программы, на основе которой можно продемонстрировать только что сказанное. #include "stdafx.h" #include <iostream> #include <string> using namespace std; int main()

{ setlocale(LC_ALL, "rus"); string s; getline(cin,s);

cout<<"Строка: "< <s< <endl< < "Символов: "<<s.length(); freopen("CON", "w", stdout); cout<< "\nWork is complete. \n"; system("pause"); return 0;} Порядок работы следующий. Программу необходимо откомпилировать, а на диске С создать текстовый файл, например, с именем "text.txt". В этот текстовый файл поместить строку текста (например, "Пример вывода в файл"). Пусть имя нашей программы - file.exe.

Если теперь просто выполнить файл file.exe, то программа попросит ввести строку текста (в данном примере введена строка "The color"), а потом выдаст на экран следующий результат: Строка: The color Символов: 9 Work is complete.

Для продолжения нажмите любую клавишу. . .

Теперь откроем командную строку, и введем в ней следующий текст:

file < c:\text.txt > c:\out.txt Здесь мы используем перенаправление ввода (<) и перенаправление вывода (>), поэтому наша программа теперь будет находить длину строки, расположенной в файле text.txt, а результат помещать в файл out.txt. Часть команды < c: \text. txt ассоциирует стандартный ввод с файлом text. txt, поэтому объект cin читает ввод именно из этого файла, вместо клавиатуры. Часть команды > c: \out. txt ассоциирует стандартный вывод с файлом out. txt, поэтому объект cout направляет свой вывод именно в этот файл, а не на экран.

Результатом выполнения программы, таким образом, будет файл с именем out.txt, содержащий следующие строки: Строка: Пример вывода в файл Символов: 20

На экране при этом мы увидим сообщение: Work is complete.

Для продолжения нажмите любую клавишу. . . Отметим, что в программе строка

freopen("CON", "w", stdout); используется для переназначения вывода на экран. Формат использования функции freopen() следующий:

freopen (pathname, type, stream); Данная функция закрывает текущий файл, связанный с потоком stream, и переназначает этот поток в файл, определяемый параметром pathname. В качестве результата функция возвращает указатель на вновь открытый файл (если в процессе возникает ошибка, прежний файл закрывается и функция возвращает значение NULL). Обычно эта функция используется для переадресации уже открытых потоков stdin, stdout, stderr, stdaux, stdprn в файлы, определяемые пользователем. При этом новый файл, связанный с

потоком, открывается в режиме type:

- "r" - открыть файл для чтения (файл должен существовать);

- "w" - открыть пустой файл для записи (если файл существовал, его содержимое уничтожается);

- "a" - открыть файл для добавления в конец (если файла не существовало, он создается);

- "r+ " - открыть файл одновременно для чтения и записи (файл должен существовать);

- "w+" - открыть пустой файл для чтения и записи (если файл существовал, его содержимое уничтожается);

- "a+ " - открыть файл для чтения и добавления (если файл отсутствует, то он создается).

Поэтому то, что выводится объектом cout до вызова функции freopen(), записывается в файл out.txt, а то, что выводится после ее вызова -отображается на экране. Вообще, лучше использовать новый вариант этой функции - freopen_s(), старый вариант здесь оставлен только с целью совместимости с более старыми компиляторами.

Перенаправление вывода не применяется к стандартным потокам ошибок, представленным cerr и clog. Это означает, что если даже стандартный вывод cout будет перенаправлен, cerr и clog будут отображать сообщения на экране.

Использованные источники:

1. Дмитриев В.Л. Теория и практика программирования на С++. -Стерлитамак: РИО СФ БашГУ, 2013. - 308 с.

2. Прата С. Язык программирования С++. Лекции и упражнения, 5-е изд.: Пер. с англ. - М.: Вильямс, 2007. - 1184 с.

3. Страуструп Б. Язык программирования С++. Специальное издание. - М.: Бином, 2004. - 1054 с.

4. Stroustrup Bjarne. The C++ programming language / Bjarne Stroustrup. - Fourth edition. - Boston: Addison-Wesley, 2013. - 1368 p.

Долженко Е.Ю. студент 4 курса кафедра Менеджмента и Маркетинга

Винник А.Е.

научный руководитель, старший преподаватель кафедра Менеджмента и Маркетинга

НИУ «БелГУ» Россия, г. Белгород

ДИАГРАММА ПАРЕТО КАК ИНСТРУМЕНТ КОНТРОЛЯ КАЧЕСТВА

РЕАЛИЗУЕМОГО ПРОЕКТА

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

i Надоели баннеры? Вы всегда можете отключить рекламу.