(C++) Вывод текста на экран


Вывод текста на экран
Разберем программу, которая выводит на экран фразу "Hello, world!".
 
#include <iostream>

using namespace std;

int main()
{
   cout << "Hello, World!" << endl; 
   return 0;     
}

Разберем программу по строчкам:

Директива #include <iostream> - (от англ. input output stream – поток ввода и вывода) - стандартный библиотечный заголовочный файл для работы с потоками ввода-вывода (input-output streams). .

using namespace std; - Импорт всего пространства имен std. Это пространство имен содержит все имена из стандартной библиотеки языка C++.

Пространство имен – это декларативная область, в рамках которой определяются различные идентификаторы (имена типов, функций, переменных, и т. д.). 
 

Пространство имен (namespace) в C++ — это механизм, который позволяет группировать идентификаторы (такие как переменные, функции, классы) под определенным именем. Это помогает избежать конфликтов имен между различными частями программы и библиотеками.

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

Пространства имен помогают сделать код более чистым, упорядоченным и уменьшить вероятность конфликтов имён.


В области std описаны стандартные потоки ввода и вывода с именами cin и cout.

Для работы с cout используется оператор <<, который определен (перегружен) для работы с различными типами данных. Оператор << позволяет направлять данные в стандарнтый поток вывода cout (обычно это консоль, то есть мы увидим информацию в специальном окне вывода на экране).

Например,
cout << "Hello, world!" << endl;
использует оператор << для вывода строки "Hello, world!" в стандартный вывод (на экран).


Заканчивать вывод принято переходом на новую строку. Для этого используется манипулятор endl, который добавляет в вывод символ новой строки и очищает буфер. Вместо endl можно напрямую вывести символ перехода на новую строку ("\n"). 

Переход на новую строку позволит следующему выводу или системным сообщениям не "слепиться" с предыдущим выводом, что делает вывод более удобным для чтения.

 

Вывод текста на экран в С++

Разберем некоторые особенности работы вывода cout

1) Два фрагмента текста, которые необходимо вывести в одной строке, можно записать таким образом:
cout << "текст1";
cout << "текст2";
Но также это можно записать в одну строку:
cout << "текст1" << "текст2";
В обоих случаях текст1 и текст2 будут выведены в одной строке.

2) Для переноса текста на новую строку, можно использовать последовательность символов "\n", либо манипулятор endl.
Следующие две строки идентичны по результату. Можно использовать любой способ.
cout << "текст1 \n" << "текст2" << "\n";  
     //обратите внимание "\n" записывается в кавычках

или можно записать так:
cout << "текст1 " << endl << "текст2" << endl;



-----------------------------------------------
*** Углубленный материал***

Этот материал предназначен для желающих изучить классический язык Си, и его отличия от Си++.

Знание этого материала, поможет вам при решении олимпиадных задач.

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

printf("<форматная строка>",<имена переменных через запятую>);   
                        // для работы необходимо подключить библиотеку stdio.h

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

В общей записи символы <> используются для того, чтобы показать, что информация, заключенная между ними, может быть различной, все зависит от задачи. При записи программы символы <> опускаются.

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

Например, оператор  
    printf("Everybody \nloves \nkitten\n");  
выводит на экран каждое слово с новой строки.
 
Еще про вывод на C++
По умолчанию потоки ввода-вывода C++ синхронизированы с потоками языка Си, что может замедлить их работу. Вы можете отключить эту синхронизацию, используя следующие строки кода в начале вашей программы:
ios_base::sync_with_stdio(false);
cin.tie(nullptr); 

Специальные символы

Во многих языках программирования есть специальные символы, которые просто так не вывести. 
Например, часто используемые специальные символы, -  это бек-слеш (\), кавычки (") и апострофы (').
Обратите внимание, что обычный слеш (/) не является специальным символом!

Для вывода таких символов перед каждым из них мы ставим знак \. То есть, если мы хотим вывести на экран знак \, то в операторе вывода необходимо написать \\.

Надо запомнить!
Чтобы вывести символы \, ", ', необходимо перед ними поставить знак \.

Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация