- •1. Знакомство со средой программирования
- •2. Создание проекта
- •3. Простейшая программа на c, функция main()
- •3. Подключение дополнительных библиотек, функция printf
- •4. Переменные, типы переменных, литералы
- •5. Форматированный вывод
- •6. Считывание данных с консоли
- •7. Условный оператор if, условные операции.
- •7.1 Оператор else
- •8. Операторы цикла while, do … while, for
- •8.1 Цикл while
- •8.2 Цикл do … while
- •8.3 Цикл for
- •9. Массивы
- •9.1 Объявление массивов
- •9.2 Инициализация массивов
- •9.3 Многомерные массивы
3. Подключение дополнительных библиотек, функция printf
Исходно язык C поддерживает очень ограниченное количество команд. Все дополнительные команды находятся в специализированных библиотеках. Что бы подключить библиотеку (как стандартную, так и вашу собственную) — необходимо использовать директиву компилятора «#include », после которой в двойных кавычках или в угловых скобках пишется имя файла библиотеки (различие между написанием вы узнаете несколько позже). Например:
#include <stdio.h>
#include "math.h"
Для стандартных библиотек правильнее использовать первый вариант написания этой директивы — «include <stdio.h>»
Библиотека языка C «stdio.h», подключаемая в этом примере, содержит функции ввода-вывода, с помощью которых можно выводить текст на экран или в файл и считывать данные с клавиатуры или из файла. Функция printf("") выводит текст, заключенный в кавычки, в консоль. Попробуйте изменить текст "Hello World!" на "What a nice day for programming!" и запустить программу ещё раз. Вы увидите, что что бы вы не написали в функции printf (правильнее говорить «что бы вы не передали в функцию printf») - оно будет выведено в консоль.
В C строки всегда заключаются в двойные кавычки. Будьте осторожны — если вы попробуете написать строку в одинарных кавычках, компилятор выдаст ошибку «invalud conversion from 'int' to 'const char*'».
Обратите так же внимание, что каждый оператор в C оканчивается символом «;». Кроме того, запомните, что язык C — регистрозависимый. Это значит, что printf и Printf — это разные имена, а значит запись «printf("Hello World!");» вызовет ошибку.
В этом примере так же присутствует вызов функции system из библиотеки stdlib.h. Эта функция предназначена для выполнения системных команд. Команда pause приостанавливает выполнение вашей программы и выводит в консоль «Press any key to continue . . .». Если убрать вызов функции system из программы и запустить программу через wxDev-C++ ещё раз, то вы увидите только мелькнувшее окно консоли.
У библиотек stdio.h и stdlib.h есть синонимы — cstdio и cstdlib соответственно. Таким образом, вместо «include <stdio.h>» мы можете писать «include <cstdio>».
Обратите внимание, что если вы после изменения кода программы запустите программу без перекомпиляции — изменения кода не отразятся на поведении программы, поскольку новая программа не будет ещё скомпилирована в исполняемый файл.
Допишите в выводимую на экран строку
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("Hello World!\n");
system("PAUSE");
}
Теперь в консоль будет выведено:
Hello World!
Press any key to continue . . .
Символ «\n», который вы дописали в строку вывода, означает перевод строки. Вообще символ «\» используется в строках C как экранирующий символ. Это означает, что в строках символ «\» и любой другой символ, стоящий после него, будет заменен на некоторый системный символ. То есть, когда вы пишите «\n» в строку вывода функции printf, в это место строки подставляется и печатается на экран перевод строки. В следующей таблице представлены все управляющие последовательности, применяемые в C:
Символ |
Значение |
\a |
Гудок |
\b |
Возврат каретки на 1 шаг |
\t |
Табуляция |
\n |
Переход на новую строку |
\r |
Возврат каретки |
\" |
Кавычки |
\' |
Апостроф |
\0 |
Ноль-символ |
\\ |
Обратная дробная черта |
\<число> |
Символ с кодом <число>, где <число> - восьмеричный код символа. |
\x<число> |
Символ с кодом <число>, где <число> - шестнадцатеричный код символа. |
Обратите внимание, что строка "\" не скомпилируется! Т.о. Например вызов функции printf("\"); вызовет ошибку компиляции, поскольку фактически строка не закрыта. Что бы вывести символ «\», необходимо использовать управляющую последовательность «\\» : printf("\\");
Символ \r всегда используется в linux-системах вместе с \n, т. е. любой перевод строки в linux — это 2 символа(\n\r), в то время как в Windows — 1 символ (\n).
Создайте новый проект (не забудьте создать для него новую папку) ControlCharacter и введите следующий код:
#include <stdio.h>
int main()
{
printf("any\tcount of characters is ignored\nby\t\"\\t\" control characted.\n");
}
Не забудьте, что без вызова функции system("PAUSE"); вы не сможете увидеть результат программы запуская её из среды разработки. Здесь и далее в примерах не будет указано вызова этой функции. Так же не забудьте, что для того, что бы использовать функцию system, необходимо подключить библиотеку stdlib.h.
После запуска на экран должно вывестись:
any count of characters is ignored
by "\t" control symbol
Как вы видите, все управляющие последовательности скрылись. Хотя выводимая строка выводится одной функцией printf, и не прерывается (написана на одной строке), она разделилась на две строки. Это и есть символ «\n».
Кроме того, несмотря на то, что any в первой строке и by во второй строке имеют разную длину, продолжение текста (count и "\t") находятся друг под другом. Дело в том, что управляющая последовательность \t делает в тексте одинаковые отступы, игнорирующие количество символов перед ними.