Функция printf

Функция 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>, иначе возникнет ошибка

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *