Ввод строки в структуру с помощью СИ?

Для ввода строки в структуру с помощью языка программирования C, мы можем использовать функцию fgets() в сочетании с функцией sscanf().

Перед тем как мы начнем вводить строку, нам необходимо создать структуру, которая будет содержать поле для хранения строки. Например, предположим, что у нас есть следующая структура:

struct Person {
    char name[50];
    int age;
};

Затем мы можем объявить переменную типа struct Person и использовать функцию fgets() для ввода строки, а затем функцию sscanf() для извлечения данных из этой строки и их сохранения в поля структуры.

#include <stdio.h>

int main() {
    struct Person p;
    char input[100];

    printf("Введите имя и возраст: ");
    fgets(input, sizeof(input), stdin);
    sscanf(input, "%s %d", p.name, &p.age);

    printf("Имя: %sn", p.name);
    printf("Возраст: %dn", p.age);

    return 0;
}

В этом примере мы сначала объявляем переменную p типа struct Person, которая будет содержать поля name и age. Затем мы объявляем массив input, который используется для временного хранения пользовательского ввода.

Затем мы приглашаем пользователя ввести имя и возраст с помощью функции printf(), а затем используем функцию fgets() для чтения пользовательского ввода с клавиатуры и сохранения его в массив input.

В следующей строке мы используем функцию sscanf() для анализа данных из строки input и сохранения их в поля структуры p. Мы используем "%s" для чтения строки (имени) и "%d" для чтения числа (возраста). Обратите внимание, что для чтения числа мы передаем адрес поля age (&p.age).

Наконец, мы выводим значения полей структуры с помощью функции printf().

В результате, при вводе "Иван 25", программа выведет:

Имя: Иван
Возраст: 25

Таким образом, мы успешно ввели строку в структуру с помощью языка программирования C.