«Ничего себе, простенький...»
На самом деле программа не сложнее классической «Hello, world!».
«Was ist das?»
Первое – это концепция потокового ввода/вывода. В классическом C ввод/вывод организован с использованием методов, размещённых в заголовочных файлах io.h и stdio.h, где связь с файлами осуществляется через дескрипторы и файловую переменную. В этой программе я использую файл включения iostream и директиву using namespace std; поскольку классы определены в стандартной области имён. Включение этого файла делает доступным четыре предопределённых потоковых объекта.
cout (console output) – экземпляр потокового класса ostream. Используется для вывода на экран, можно применять агрегатно и выводить сразу несколько значений, при этом тип выводимого значения оператор определяет сам.
cin (console input) – это, соответственно, уже экземпляр потокового класса istream. Используется для ввода с клавиатуры, его так же можно применять агрегатно.
Остальные два объекта более специфичны:
cerr – используется для вывода сообщений об ошибках;
clog – используется для ведения журнала.
Теперь о методах.
>> - оператор для чтения из входного потока istream. Это форматированное извлечение данных для всех основных типов.
<< - а это форматированный вывод данных для всех основных типов.
endl (end of line) – это просто переход в начало следующей строки.
Вообще, тема потоков довольно обширна. Их преимущество – удобство. Для сравнения, например, можно использовать conio.h (console input/output).
cputs(“...”); //console put string – вывод строки на экран.
cprintf(“%...”,...); //console print format – форматированный вывод. “%...” – задаёт формат вывода. Непосредственно после символа % следует спецификатор формата, к примеру, d – decimal (десятичные) или f – float (с плавающей).
cscanf(“%...”,&...); //console scan format – форматированный ввод. Так же указывается спецификатор формата, а амперсанд – это уже особенности синтаксиса языка.
По второму пункту всё обстоит гораздо сложнее. Чтобы изложить суть потребуется углубляться в GENTEXT.C и TCHAR.H. Это нюансы main, tmain, wmain. Скажем просто, данная часть кода была сгенерированна при создании проекта. В принципе, если смущает, то её можно убрать и преобразить к виду:
#...
main()
{
...
}