Введение
В этом практическом занятии (лабораторной работе) вы научитесь считывать пользовательский ввод на языке программирования C с использованием функции scanf(). Функция scanf() представляет собой мощный инструмент для считывания ввода от пользователей и определена в стандартной библиотеке ввода-вывода stdio.h. Язык C является строго типизированным и поддерживает различные типы данных. В рамках этого практического занятия мы сосредоточимся на использовании типов данных char и int для считывания и отображения пользовательского ввода.
Настройка среды разработки
На этом шаге мы настроим нашу среду разработки и создадим новый файл на языке C для нашей программы.
Откройте терминал в WebIDE. По умолчанию вы должны находиться в директории
/home/labex/project. Если вы не уверены, вы можете ввести командуpwd(print working directory - вывести текущую рабочую директорию), чтобы проверить свое текущее местоположение.Создайте новый файл с именем
user_input.cс использованием следующей команды:touch user_input.cКоманда
touchсоздает новый пустой файл, если он не существует, или обновляет временную метку существующего файла.Откройте файл
user_input.cв редакторе WebIDE. Вы можете сделать это, кликнув на имя файла в проводнике файлов слева в WebIDE или используя опциюOpen Fileв менюFile.
Написание базовой структуры программы
На этом шаге мы напишем базовую структуру нашей программы на языке C.
В файле
user_input.cдобавьте следующий код:#include <stdio.h> int main() { // We will add our code here return 0; }Разберем этот код на части:
#include <stdio.h>сообщает компилятору включить стандартную библиотеку ввода-вывода. В этой библиотеке содержатся такие функции, какprintf()иscanf(), которые мы будем использовать для ввода и вывода данных.int main()- это главная функция, с которой начинается выполнение нашей программы. Каждая программа на языке C должна иметь главную функцию.- Фигурные скобки
{ }определяют тело главной функции. return 0;в конце функцииmainуказывает, что программа успешно завершила выполнение.
Сохраните файл. Вы можете сделать это, нажав Ctrl+S или выбрав опцию
Saveв менюFile.
Реализация ввода имени пользователя
Теперь реализуем функциональность для считывания имени пользователя.
Измените файл
user_input.c, добавив следующий код внутри функцииmain():#include <stdio.h> int main() { char name[100]; printf("Enter your name: "); scanf("%s", name); printf("Hello, %s!\n", name); return 0; }Вот, что делает каждая новая строка:
char name[100];объявляет массив символов (строку), который может содержать до 99 символов плюс нулевой символ-терминатор.printf("Enter your name: ");предлагает пользователю ввести свое имя.scanf("%s", name);считывает строку из пользовательского ввода и сохраняет ее в массивеname. Спецификатор формата%sиспользуется для считывания строк.printf("Hello, %s!\n", name);выводит приветствие с использованием имени, введенного пользователем. В форматированной строке%sзаменяется значением переменнойname.
Сохраните файл.
Добавление ввода возраста
Давайте расширим нашу программу, чтобы она также запрашивала возраст пользователя.
Измените файл
user_input.c, добавив ввод возраста:#include <stdio.h> int main() { char name[100]; int age; printf("Enter your name: "); scanf("%s", name); printf("Enter your age: "); scanf("%d", &age); printf("Hello, %s! You are %d years old.\n", name, age); return 0; }Что нового здесь:
int age;объявляет целочисленную переменную для хранения возраста пользователя.- Мы добавили еще одну пару
printf()иscanf()для запроса и считывания возраста. scanf("%d", &age);считывает целое число из пользовательского ввода. Спецификатор формата%dиспользуется для целых чисел. Обратите внимание на&передage- это потому, чтоscanf()требует адрес памяти переменной для сохранения ввода.- В последнем
printf()теперь в выходном сообщении также выводится возраст.
Сохраните файл.
Компиляция и запуск программы
На этом последнем шаге мы скомпилируем нашу программу на языке C и запустим ее, чтобы увидеть результаты.
В терминале перейдите в директорию, содержащую файл
user_input.c:cd /home/labex/projectЭтот шаг гарантирует, что вы находитесь в правильной директории. Если вы уже там, вы увидите сообщение "cd: no such file or directory", которое можно проигнорировать.
Скомпилируйте программу с использованием компилятора GCC:
gcc user_input.c -o user_inputЭта команда сообщает GCC скомпилировать файл
user_input.cи создать исполняемый файл с именемuser_input. Если в вашем коде есть ошибки, вы увидите здесь сообщения об ошибках. В таком случае вернитесь к своему коду, исправьте ошибки и попробуйте скомпилировать снова.Запустите скомпилированную программу:
./user_input./сообщает оболочке искать программу в текущей директории.

Программа попросит вас ввести ваше имя и возраст. Введите свои ответы и нажмите Enter после каждого ввода.
Вы должны увидеть персонализированное приветственное сообщение с вашим именем и возрастом.
Если вы столкнетесь с какими-либо проблемами, перепроверьте ваш код на опечатки и убедитесь, что вы сохранили все изменения перед компиляцией.
Резюме
В этом практическом занятии вы научились считывать пользовательский ввод на языке C с использованием функции scanf(). Вы создали программу, которая запрашивает у пользователя его имя и возраст, считывает введенные данные и выводит персонализированное приветственное сообщение. В ходе этого упражнения вы познакомились с базовыми операциями ввода-вывода на языке C, работой с различными типами данных (массивами char для строк и int для целых чисел) и процессом компиляции и запуска программы на языке C.
Основные выводы:
- Функция
scanf()используется для считывания пользовательского ввода. - В зависимости от типа вводимых данных используются различные спецификаторы формата (
%sдля строк,%dдля целых чисел). - При считывании целых чисел или других нестроковых типов с помощью
scanf()необходимо использовать оператор&для передачи адреса переменной. - Процесс компиляции преобразует ваш код на языке C в исполняемую программу.
Эти фундаментальные навыки являются основой для более сложных задач программирования на языке C и будут полезны вам в дальнейшем обучении и развитии своих программистских способностей. Помните, что практика - ключ к успеху в программировании. Попробуйте изменить эту программу или создать новые, чтобы закрепить полученные знания!



