C++ для начинающих - страница 7

стр.

Для использования библиотеки ввода/вывода необходимо включить соответствующий заголовочный файл:


>#include iostream


Чтобы значение поступило в стандартный вывод или в стандартный вывод для ошибок используется оператор :


>int v1, v2;

>// ...

>cout "сумма v1 и v2 = ";

>cout v1 + v2;

>cout "\n";


Последовательность "\n" представляет собой символ перехода на новую строку. Вместо "\n" мы можем использовать предопределенный манипулятор endl.


>cout endl;


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


cout "сумма v1 и v2 = " v1 + v2 "\n";


Для чтения значения из стандартного ввода применяется оператор ввода ():


>string file_name;

>// ...

>cout "Введите имя файла: ";

>cin file_name;


Операторы ввода, как и операторы вывода, можно сцеплять:


>string ifile, ofile;

>// ...

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

>cin ifile ofile;


Каким образом ввести заранее неизвестное число значений? Мы вернемся к этому вопросу в конце раздела 2.2, а пока скажем, что последовательность инструкций


>string word;

>while ( cin word )

>// ...


считывает по одному слову из стандартного ввода до тех пор, пока не считаны все слова. Выражение


>( cin word )


возвращает false, когда достигнут конец файла. (Подробнее об этом – в главе 20.) Вот пример простой законченной программы, считывающей по одному слову из cin и выводящей их в cout:


>#include iostream

>#include string

>int main ()

>{

>string word;

>while ( cin word )

>cout "Прочитано слово: " word "\n";

>cout "Все слова прочитаны!";

>}


Вот первое предложение из произведения Джеймса Джойса “Пробуждение Финнегана”:


>riverrun, past Eve and Adam's


Если запустить приведенную выше программу и набрать с клавиатуры данное предложение, мы увидим на экране терминала следующее:


>Прочитано слово: riverrun,

>Прочитано слово: past

>Прочитано слово: Eve,

>Прочитано слово: and

>Прочитано слово: Adam's

Все слова прочитаны!


(В главе 6 мы рассмотрим вопрос о том, как убрать знаки препинания из вводимых слов.)

1.5.1. Файловый ввод/вывод


Библиотека iostream поддерживает и файловый ввод/вывод. Все операции, применимые в стандартному вводу и выводу, могут быть также применены к файлам. Чтобы использовать файл для ввода или вывода, мы должны включить еще один заголовочный файл:


>#include fstream


Перед тем как открыть файл для вывода, необходимо объявить объект типа ofstream:


>ofstream outfile("name-of-file");


Проверить, удалось ли нам открыть файл, можно следующим образом:


>if ( ! outfile ) // false, если файл не открыт

cerr "Ошибка открытия файла.\n"


Так же открывается файл и для ввода, только он имеет тип ifstream:


>ifstream infile("name-of-file");

>if ( ! infile ) // false, если файл не открыт

cerr "Ошибка открытия файла.\n"


Ниже приводится текст простой программы, которая читает файл с именем in_file и выводит все прочитанные из этого файла слова, разделяя их пробелом, в другой файл, названный out_file.


>#include iostream

>#include fstream

>#include string

>int main()

>{

>ifstream infile("in_file");

>ofstream outfile("out_file");


>if ( ! infile ) {

cerr "Ошибка открытия входного файла.\n";

>return -1;

>}


>if ( ! outfile ) {

cerr "Ошибка открытия выходного файла.\n";

>return -2;

>}

>string word;

>while ( infile word )

>outfile word ' ';

>return 0;

>}



В главе 20 библиотека ввода/вывода будет рассмотрена подробно. А в следующих разделах мы увидим, как можно создавать новые типы данных, используя механизм классов и шаблонов.


2014-04-07 23:08:15 Андрей

Клас дякую все зрозумыло ы легко запам`ятовується


>2014-01-06 16:23:31 adil

thank you спасибо тебе хорошая статья думаю что все сдесь понятно с++ это самая стандартный Язык программирование спасибо за статию


>2014-01-05 20:54:54 Djo

Зачётная глава! Решил c php перейти на c++. Всё понятно и без флуда.


2013-10-31 19:48:46 Дима

Почему в двух последних программах нет строчки namespace std;????? Я, как начинающий, никогда бы не понял как написать эти программы, если бы не пользовался другими источниками.