Самая простая программа на С++, это программа, печатающая текстовое сообщение, говоря печатающая, подразумевается не печать на принтере, а всего лишь отправка данного сообщения на стандартное устройство вывода, то есть на экран. Проще не бывает, хотя код, содержащий только функцию main() и некоторые препроцессорные директивы тоже является программой, на этот раз, самой простой программой. Рассмотрим детально каждую строку программы, печатающей текстовое сообщение.
// first_program.cpp: определяет точку входа для консольного приложения. // <DEN><программа печатающая текст><15:40><23.07.2010> #include "stdafx.h" #include <iostream> using namespace std; int main(int argc, char* argv[]) { cout << "My first program!" << endl; system("pause"); return 0; }
Строка 1 начинается с символов //
, которые показывают, что данная строка является комментарием. Компилятор игнорирует комментарии и поэтому они предназначены только для того, чтобы программу можно было легче читать и понимать. Точка входа для консольного приложения — это имя программы, которое надо ввести в консоли, чтобы запустить эту программу через консоль.
В нашем случае под консолью подразумевается лишь командная строка. Обратите внимание, в строке 2 стоит специальный комментарий, такой комментарий иногда бывает очень полезен, особенно, если необходимо покопаться в старых исходниках. И когда натыкаешься на такой комментарий в исходниках, сразу становится понятно, о чём данная программа, да и дата написания программы лишней не будет. А если к кому-то попадет ваш исходник, то будет известно, кто автор. Также можно добавлять ещё и адрес электронной почты.
Чтобы в дальнейшем было удобно читать свои исходники, рекомендую комментировать в следующем формате:
//<Кто написал программу><вкратце, что делает><время написания><дата написания>
В C++ существует два способа записи комментариев:
- Две косые черты
//
— однострочный комментарий. Такие комментарии комментируют всю строчку, не более и не менее. - Многострочный комментарий. Такой комментарий начинается с символов
/*
и заканчивается символами*/
.
Если вы программируете в IDE, или специальном текстовом редакторе, то комментарии будут выделяться другим цветом, как правило зеленым, цвет комментариев зависит от среды разработки программ, например в Microsoft Visual Studio 2010 комментарии выделяются зеленым цветом.
Данная программа была написана как раз в MVS2010. Данная среда разработки была выбрана нами в качестве основной, так как она является наиболее удобной средой разработки программ на языке программирования С++ под Windows. Это субъективно наше мнение, которое может не совпадать с вашим. MVS активно развивается и улучшается корпорацией Microsoft. Также параллельно развивается проект «RAD Studio» компании Embarcadero Technologies. Данный проект поддерживает несколько языков программирования, в том числе и С++. Последняя версия «RAD Studio» вышла в 2011 году, и называется «Rad Studio 2011 XE». Так, что выбор остаётся за Вами, где творить!!!
Строки 3 и 7 пустые и нужны только для того, что бы было удобно просматривать ранее написанный код. Оставляйте пустые строки, это поможет повысить уровень удобочитаемости исходного кода. В строке 4 подключен так называемый «контейнер» — заголовочный файл "stdafx.h"
. Данный файл предназначен для сокрытия некоторых подключаемых библиотечных файлов, так что файлы можно подключать в "stdafx.h"
, а в файле с функцией main()
просто будет подключён данный контейнер. Контейнер "stdafx.h"
можно и не использовать, но удалять нельзя. Такой заголовочный файл "stdafx.h"
существует только в MVS. Так что если встретите в чьём-то исходнике строку типа этой:
#include "stdafx.h"
знайте, что такая программа написана в Microsoft Visual Studio.
Строка 5 позволяет выводить данные на экран. Данная строка включает в программу заголовочный файл потоков ввода/вывода. Данный файл должен быть включен во все программы, где предусматривается вывод текста на экран или считывание его с клавиатуры.
Всякий оператор С++ должен оканчиваться точкой с запятой ;
. Директивы препроцессора #include
, фигурные скобочки {}
, заголовки функций int main()
не оканчиваются точкой с запятой.
Строку 6 подробно разберем в дальнейшем, а пока скажу, что эта строка определяет пространство имен std
.
В строке 8 прописан заголовок главной функции int main()
. Так как функции в С++ мы будем рассматривать чуть позже, просто прописывайте данную строку в каждой своей программе. Строка 10 печатает текст, находящийся в кавычках, пробелы между словами не игнорируются. В дальнейшем текст между кавычками будем называть сообщением или строковым литералом. Символы <<
называются операцией передачи в поток. Данные символы используются вместе с оператором вывода cout
. Оператор endl
переносит курсор на следующую строку. Можно было бы написать так: cout << "My first program!";
но тогда следующее сообщение печаталось бы в текущей строке (см. рисунок 1).
My first program!Для продолжения нажмите любую клавишу . . .
Рисунок 1 — Первая программа на С++
Так как после оператора cout
стоит оператор endl
, то каретка переводится на следующую строку, тогда следующее сообщение будет печататься в новой строке(см. рисунок 2).
My first program! Для продолжения нажмите любую клавишу . . .
Рисунок 2 — Первая программа на С++
Строка 11 необходима только для того чтобы программа не завершала свою работу сразу после вывода сообщения на экран. Попробуйте запустить программу без данной строки. system("pause");
выполняет задержку с последующим выводом сообщения:
Вот в принципе и все. Дальше рассмотрим некоторые способы форматирования выводимой на экран информации.
Комментарии
JetPlay
Незнаю чому ,але в пронрамі SoloLearn код не працює.Підкажіть ,що не так з вашим кодом?
Valiner
Возвращаясь к своему вопросу ,убрав 11 строку все начало работать прекрасно , и никакого проподания окна, мое предположение ,что это какая-то ошибка CB , добрые люди объясните , из-за чего это происходит , спасибо огромное.
Valiner
Вечер добрый , сижу в CB (code blocks), при компеляции выдает якобы »system» wasn’s declared in scope , как это возможно ,у меня тупит CB или , я что-то не так сделал ,
#include "stdafx.h"
это я удалил…
1lena
День добрый. Написала программу без
#include «stdafx.h»
и все работает. Вопрос, можно его вообще не писать?
Marienko L.
да, можно