Ввод-вывод в C: scanf() и printf() — подробное руководство
Ввод-вывод в C
Это руководство проведёт вас через использование scanf() для получения пользовательского ввода и printf() для вывода, с чёткими примерами и лучшими практиками.
Видео: Получение пользовательского ввода в C
Смотрите сопроводительное видео для живых демонстраций scanf() в действии.
Вывод в C
Функция printf() — основной инструмент для вывода форматированного текста в консоль. Ниже иллюстративные примеры.
Пример 1: Базовый текстовый вывод
#include <stdio.h>
int main() {
printf("C Programming");
return 0;
}
Вывод
C Programming
Программа печатает простую строку. Ключевые моменты:
- Функция
main()обязательна; выполнение начинается здесь. - Подключите
stdio.hдля доступа кprintf(). - Опциональный
return 0;сигнализирует об успешном завершении.
Пример 2: Вывод целых чисел
#include <stdio.h>
int main() {
int testInteger = 5;
printf("Number = %d", testInteger);
return 0;
}
Вывод
Number = 5
Спецификатор %d подставляет целочисленное значение в строку вывода.
Пример 3: Вывод чисел с плавающей точкой
#include <stdio.h>
int main() {
float number1 = 13.5;
double number2 = 12.4;
printf("number1 = %f\n", number1);
printf("number2 = %lf", number2);
return 0;
}
Вывод
number1 = 13.500000 number2 = 12.400000
Используйте %f для float и %lf для double.
Пример 4: Вывод символа
#include <stdio.h>
int main() {
char chr = 'a';
printf("character = %c", chr);
return 0;
}
Вывод
character = a
Печать одиночного символа через %c.
Ввод в C
Функция scanf() читает форматированные данные из стандартного ввода (обычно клавиатуры). Ниже практические примеры.
Пример 5: Ввод/вывод целого числа
#include <stdio.h>
int main() {
int testInteger;
printf("Enter an integer: ");
scanf("%d", &testInteger);
printf("Number = %d", testInteger);
return 0;
}
Вывод
Enter an integer: 4 Number = 4
Оператор адреса & передаёт scanf() адрес памяти для сохранения ввода пользователя.
Пример 6: Ввод/вывод float и double
#include <stdio.h>
int main() {
float num1;
double num2;
printf("Enter a number: ");
scanf("%f", &num1);
printf("Enter another number: ");
scanf("%lf", &num2);
printf("num1 = %f\n", num1);
printf("num2 = %lf", num2);
return 0;
}
Вывод
Enter a number: 12.523 Enter another number: 10.2 num1 = 12.523000 num2 = 10.200000
Пример 7: Ввод/вывод символа
#include <stdio.h>
int main() {
char chr;
printf("Enter a character: ");
scanf("%c", &chr);
printf("You entered %c.", chr);
return 0;
}
Вывод
Enter a character: g You entered g.
Символ внутренне представлен своим ASCII-кодом; печать через %c восстанавливает исходный символ.
Пример 8: Отображение ASCII-значения
#include <stdio.h>
int main() {
char chr;
printf("Enter a character: ");
scanf("%c", &chr);
printf("You entered %c.\n", chr);
printf("ASCII value is %d.", chr);
return 0;
}
Вывод
Enter a character: g You entered g. ASCII value is 103.
Обработка множественных входов
Сбор нескольких значений в одном вызове scanf() эффективен и лаконичен.
#include <stdio.h>
int main() {
int a; float b;
printf("Enter an integer and then a float: ");
scanf("%d%f", &a, &b);
printf("You entered %d and %f", a, b);
return 0;
}
Вывод
Enter integer and then a float: -3 3.4 You entered -3 and 3.400000
Спецификаторы формата для ввода-вывода
Ниже — краткий справочник для распространённых типов C и их спецификаторов printf() / scanf().
%d–int%f–float%lf–double%c–char
| Тип данных | Спецификатор формата |
|---|---|
int | %d |
char | %c |
float | %f |
double | %lf |
short int | %hd |
unsigned int | %u |
long int | %li |
long long int | %lli |
unsigned long int | %lu |
unsigned long long int | %llu |
signed char | %c |
unsigned char | %c |
long double | %Lf |
Дополнительные спецификаторы и флаги
Полезные модификаторы формата:
%5d— ширина поля 5, выравнивание вправо.%-5d— ширина 5, выравнивание влево.%05d— дополнение нулями слева до ширины 5.%.2f— 2 знака после запятой для float/double.%.*f— точность задаётся аргументом.%p— вывод указателя (адреса).
Язык C
- Основы ввода-вывода в C#: Console.WriteLine, ReadLine и форматирование
- Освоение ввода и вывода в C++: практическое руководство
- Мастерство ввода-вывода и импорта модулей в Python: Практическое руководство
- Работа с файлами в Python: открытие, чтение, запись и управление
- Ввод и вывод в Java: печать, чтение и форматирование данных
- Axiomtek IPS960-511-PoE: All-in-One rugged визионный контроллер для промышленного контроля
- acceed EDAM-4200: Интегрированные I/O-модули для масштабируемой надежной передачи данных
- Потоки в C++: cout, cin, cerr, clog — практическое руководство
- D-защелки: проектирование, принцип работы и ключевые отличия от триггеров
- Ввод-вывод в C: stdio.h, потоки stdin/stdout/stderr, функции getchar/putchar, gets/puts, scanf/printf