Функция printf
Почему сначала нужно понять и хорошо освоить эту функцию? Потому что на протяжении всего дальнейшего изучения C мы будем часто её использовать, она предназначена для вывода текста в консоль.
1 Функция printf
Мы уже использовали её в предыдущем примере кода
// Вызов printf для вывода строки, \n означает перевод строки
printf("hello, world\n");
Code language: Arduino (arduino)
printf() Стандартная библиотечная функция вывода
printf("текст") передаёт строку как аргумент; выводит все символы внутри двойных кавычек в консоль;
Каждая инструкция обязательно заканчивается точкой с запятой ; — это маркер конца оператора. Если забыть точку с запятой, появится ошибка компиляции. Пример сообщения об ошибке ниже:
C:\cdemo>gcc hello.c -o hello.exe
hello.c: In function 'main':
hello.c:5:29: error: expected ';' before 'return'
printf("hello, world\n")
^
;
return 0;
~~~~~~Code language: PHP (php)
Если нужно вывести многострочный текст, пишите так:
#include <stdio.h>
main()
{
printf("Текст первой строки\n");
printf("Текст второй строки\n");
}Code language: PHP (php)
2 Строка символов
Набор символов, обрамлённый английскими двойными кавычками " ", например "hello, world\n"
В наших предыдущих примерах строки передавались как аргумент функции printf для прямого вывода в консоль
Строку нельзя разрывать переносом строки при написании, следующий код сразу вызовет ошибку компиляции:
// Неверный пример: строка разделена на две строки
printf("hello, world
");
Code language: Arduino (arduino)
Вывод ошибки компиляции
C:\cdemo>gcc hello.c -o hello.exe
hello.c: In function 'main':
hello.c:6:11: warning: missing terminating " character
printf("hello, world
^
hello.c:6:11: error: missing terminating " character
printf("hello, world
^~~~~~~~~~~~~
hello.c:7:4: warning: missing terminating " character
");
^
hello.c:7:4: error: missing terminating " character
");
^~~
hello.c:8:5: error: expected expression before 'return'
return 0;
^~~~~~
hello.c:8:14: error: expected ';' before '}' token
return 0;
^
;
}Code language: PHP (php)
3 Экранирующий символ \n перевод строки
\n — специальный маркер языка C, обозначающий символ перевода строки;
printf не выполняет перевод строки автоматически, нужно вручную добавить \n, чтобы курсор перешёл на следующую строку;
Без символа \n весь текст выведется в одну строку, смотрите пример ниже
#include <stdio.h>
int main()
{
// Без \n: два текста сливаются в одну строку
printf("hello");
printf("world");
// С \n: автоматический перевод после вывода
printf("\nhello\n");
printf("world\n");
return 0;
}Code language: PHP (php)
C:\cdemo>gcc hello.c -o hello.exe
C:\cdemo>hello
helloworld
hello
world
C:\cdemo>Code language: CSS (css)
Видно, что hello и world выведены слитно в одну строку. Поэтому при использовании printf для вывода с переводом строки не забывайте добавлять \n. Один \n равен одному нажатию клавиши Enter; два подряд идущих \n создают два перевода строк, между текстами появится пустая строка — как два раза нажать Enter в блокноте.
#include <stdio.h>
int main()
{
printf("one\n\n");
printf("two");
return 0;
}Code language: PHP (php)
Результат выполнения программы
C:\cdemo>gcc hello.c -o hello.exe
C:\cdemo>hello
one
two
C:\cdemo>Code language: CSS (css)
Составной вывод в одну строку через несколько вызовов printf
Рассмотрим пример
#include <stdio.h>
int main()
{
printf("hello, ");
printf("world");
printf("\n"); // Один перевод строки в самом конце
}Code language: PHP (php)

Дополнение о частых ошибках
#include <stdio.h>
Эта строка подключает заголовочный файл через препроцессор, точку с запятой в конце ставить не нужно ;
Чтобы использовать функцию printf, обязательно подключите #include <stdio.h>, иначе возникнет ошибка