Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C++ лекции.doc
Скачиваний:
22
Добавлен:
21.04.2019
Размер:
536.06 Кб
Скачать

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 делает в тексте одинаковые отступы, игнорирующие количество символов перед ними.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]