46229

Ввод-вывод в терминал. Работа со строками. Работа с файлами

Доклад

Информатика, кибернетика и программирование

Обмен данными между программой и внешними устройствами осуществляется с помощью операций вводавывода. В языке Си нет особых операторов для ввода или вывода данных. Вместо этого имеется набор классов стандартно поставляемых вместе с компилятором которые и реализуют основные операции вводавывода. Библиотека классов для вводавывода решает две задачи.

Русский

2013-11-20

14.5 KB

2 чел.

1. Ввод-вывод в терминал. Работа со строками. Работа с файлами.

Обмен данными между программой и внешними устройствами осуществляется с помощью операций ввода-вывода. Типичным внешним устройством является терминал. На терминале можно напечатать информацию. Можно ввести информацию с терминала, напечатав ее на клавиатуре. Другим типичным устройством является жесткий или гибкий диск, на котором расположены файлы. Программа может создавать файлы, в которых хранится информация. Другая (или эта же) программа может читать информацию из файла.

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

Библиотека классов для ввода-вывода решает две задачи. Во-первых, она обеспечивает эффективный ввод-вывод всех встроенных типов и простое, но тем не менее гибкое, определение операций ввода-вывода для новых типов, разрабатываемых программистом. Во-вторых, сама библиотека позволяет при необходимости развивать её и модифицировать.

Механизм для ввода-вывода в Си++ называется потоком . Название произошло от того, что информация вводится и выводится в виде потока байтов – символ за символом.

Класс istream реализует поток ввода, класс ostream – поток вывода. Эти классы определены в файле заголовков iostream.h. 

ostream – это механизм преобразования значений различного типа в последовательность символов.

istream – класс, обеспечивающий оператор ввода >> для небольшого набора стандартных типов

Вывод осуществляется с помощью операции <<

Ввод с помощью операции >>.

Работа со строками

Манипуляторы

endl - при выводе перейти на новую строку;

ends - вывести нулевой байт (признак конца строки символов);

flush - немедленно вывести и опустошить все промежуточные буферы;

dec - выводить числа в десятичной системе (действует по умолчанию);

oct -  выводить числа в восьмеричной системе;

hex - выводить числа в шестнадцатиричной системе счисления;

Чтение всей строки целиком

Оператор >> читает за раз всего одно слово.

Для чтения строки необходимо использовать функцию getline:

istream& getline (istream& is, string& str);

Работа с файлами

Для работы с файлами существуют специальные потоки из библиотеки <fstream>:

ifstream - поток ввода, открывает файл для чтения

ofstream – поток вывода, открывает файл для записи

ifstream и ofstream предоставляют три специальные функции для работы с файлами:

close() - закрывает файл

open(const char* s,

ios_base::openmode n) - открывает файл

bool is_open() - определяет открыт ли файл

Режимы открытия файлов

app - всегда писать в конец файла

binary - ввод/вывод в двоичном режиме

in - открыть для ввода

out - открыть для вывода

trunc - уничтожить данные после открытия

существующего потока

ate - открыть позиционируя указатель на

конец файла


 

А также другие работы, которые могут Вас заинтересовать

10599. Методы интегрального преобразования 76.24 KB
  Методы интегрального преобразования. Операционные методы. Для многих задач теплопроводности использование классических методов оказывается неэффективным например применение метода разделения переменных для задач с внутренними источниками тепла. Основные пра
10600. Нагрев неограниченной пластины. Решение методом преобразования Фурье 73.38 KB
  Нагрев неограниченной пластины. Решение методом преобразования Фурье Дана неограниченная пластина толщиной 2R при температуре. Теплообмен с окружающей средой происходит при ГУ2. Нагрев осуществляется переменным источником ...
10601. Нагрев неограниченного цилиндра 67.29 KB
  Нагрев неограниченного цилиндра Решение задачи нагрева цилиндра произведем с помощью преобразования Ханкеля 81 Краевые условия Tr0=fr...
10602. Нагрев цилиндра конечных размеров 86.09 KB
  Нагрев цилиндра конечных размеров. Если имеется симметрия относительно оси z то оператор тождественно равен нулю тогда получим Рассмотрим решение уравнения для конечного цили...
10603. Численные методы решения тепловой задачи. Метод конечных разностей 218 KB
  Численные методы решения тепловой задачи. Метод конечных разностей Многие математические модели описываются дифференциальным уравнением или системой дифференциальных уравнений с краевыми условиями первого второго и третьего рода. Точное решение краевых задач уд...
10604. Метод граничных элементов 353 KB
  Метод граничных элементов Приводятся фундаментальные решения для ортотропных и анизотропных областей и показывается что все положения обсуждавшиеся в предыдущих разделах справедливы также и для бесконечных областей при выполнении определенных условий регулярно...
10605. Метод конечных элементов. Прямое построение глобальной матрицы жесткости 124.5 KB
  Метод конечных элементов Прямое построение глобальной матрицы жесткости Метод построения глобальной матрицы жесткости весьма неэффективен при использовании цифровой вычислительной машины. Эта неэффективность объясняется тем что матрица жесткости отдельного эл...
10606. Решение МКЭ тепловой задачи для цилиндра. Алгоритм расчета 635.5 KB
  Решение МКЭ тепловой задачи для цилиндра. Алгоритм расчета Математическая модель линейной задачи теплопроводности с внутренним тепловыделением в цилиндрических координатах имеет вид: 1 с граничными условиями:
10607. Электродуговой нагрев. Общие положения. Постановка тепловой задачи. Методы решения. Устойчивость дуги 292.5 KB
  Электродуговой нагрев. Общие положения. Постановка тепловой задачи. Методы решения. Устойчивость дуги Электрическая дуга представляет собой один из видов электрических разрядов в газах при котором наблюдается прохождение электрического тока через газовый промежут...