Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 19.12.2018
Сообщений: 33
1

Как записать значения в структуру

18.05.2019, 09:11. Просмотров 363. Ответов 3

Доброго времени суток! Я не знаю как заполнить структуру. Мне выдаёт исключение, когда я ввожу имя фирмы.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
 
 
struct firma
{
    char name;
    int kolvo;
    int god_oborot;
    int INN;
    char dop_sved;
};
 
int main()
{
    system("chcp 1251");
    firma *f = NULL;
    int num = 0;
    //Запрашиваем количество (с проверкой ввода)
    do
    {
        printf("Введите количество фирм (>0): ");
        scanf_s("%d", &num);
    } while (num <= 0);
    //Выделяем память под массив структур
    f = new firma[num];
    for (int i = 0; i < num; ++i)
    {
        scanf_s("%s\n", f[i].name);
        scanf_s("%d\n", f[i].kolvo);
        scanf_s("%d\n", f[i].god_oborot);
        scanf_s("%d\n", f[i].INN);
        printf("Name : %c\n", f[i].name);
        printf("Name : %d\n", f[i].kolvo);
        printf("Name : %d\n", f[i].god_oborot);
        printf("Name : %d\n", f[i].INN);
    }
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.05.2019, 09:11
Ответы с готовыми решениями:

Распарсить строку и записать значения в структуру
Всем привет, не могу сделать следующие: нужно распарсить определенную строку, на определенные...

Как записать структуру в файл?
Здравствуйте расскажите пожалуйста, как записать структуру в файл. Используя библиотеку &lt;fstream&gt; ...

Как записать структуру в файл
Как на Qt записать структуру в файл??

Как записать структуру в файл?
есть структура struct frend { char name; char tel; };как записать ее в файл и потом...

3
1 / 1 / 0
Регистрация: 24.02.2017
Сообщений: 22
18.05.2019, 11:24 2
для начала, поле name должно быть типа char*
C
1
2
3
4
5
6
7
8
struct firma
{
char *name;
int kolvo;
int god_oborot;
int INN;
char dop_sved;
};
в мейне перед вводом вам нужно выделить память определённого размера
C
1
2
3
4
5
6
7
8
9
10
11
12
for (int i = 0; i < num; ++i)
{
f[i].name = (char*)malloc(32);
scanf_s("%s\n", f[i].name);
scanf_s("%d\n", f[i].kolvo);
scanf_s("%d\n", f[i].god_oborot);
scanf_s("%d\n", f[i].INN);
printf("Name : %c\n", f[i].name);
printf("Name : %d\n", f[i].kolvo);
printf("Name : %d\n", f[i].god_oborot);
printf("Name : %d\n", f[i].INN);
}
1
80 / 77 / 8
Регистрация: 19.06.2015
Сообщений: 126
18.05.2019, 11:58 3
1) C и C++ - это разные языки.
2) scanf_s - это функция исключительно компилятора Майкрософт
3) Выбери, что конкретно ты хочешь учить. С или С++
4) Если С, для меня лучшая книга, которая была понятна мне, Кочан Стефан - Программирование на языке С

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <stdlib.h>
 
struct firma {
    char name;
    int kolvo;
    int god_oborot;
    int INN;
};
 
int main()
{
    system("chcp 1251");
    struct firma *f;
    int num = 0;
    
    //Запрашиваем количество (с проверкой ввода)
    do {
        printf("Введите количество фирм (>0): ");
        scanf("%d", &num);
    } while (num <= 0);
    //Выделяем память под массив структур
    f = (struct firma *)malloc(sizeof(struct firma));
    for (int i = 0; i < num; ++i)
    {
        scanf("%s", &f->name);
        scanf("%d", &f->kolvo);
        scanf("%d", &f->god_oborot);
        scanf("%d", &f->INN);
        printf("Name : %c\n", f->name);
        printf("Name : %d\n", f->kolvo);
        printf("Name : %d\n", f->god_oborot);
        printf("Name : %d\n", f->INN);
    }
    return 0;
}
1
0 / 0 / 0
Регистрация: 19.12.2018
Сообщений: 33
18.05.2019, 14:16  [ТС] 4
Я попытался сделать всё так, как вы посоветовали, но у меня не получилось. После того как я ввожу данные, я не могу их вывести. Исключение выдаёт именно тогда, когда программа должна выводить полученные данные. А если вместо
printf("Название фирмы : %s\n", f->name); я напишу printf("Название фирмы : %s\n", &f->name);
то я всё равно не получу данных, выведется какой-то мусор.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
    f = (struct firma *)malloc(sizeof(struct firma));
    for (int i = 0; i < num; ++i)
    {
        for (int i = 0; i < num; ++i)
        {
            printf("Введите название фирмы\n");
            scanf("%s\n", &f->name);
            printf("Введите количество сотрудников\n");
            scanf("%d\n", &f->kolvo);
            printf("Введите годовой оборот\n");
            scanf("%d\n", &f->god_oborot);
            printf("Введите ИНН\n");
            scanf("%d\n", &f->INN);
            if (f->god_oborot > 1000000) {
                printf("Введите дополнительные сведения доходности\n");
                scanf("%s\n", &f->dop_sved);
            }
            printf("Название фирмы : %s\n", f->name);
            printf("Количество сотрудников : %d\n", f->kolvo);
            printf("Годовой оборот : %d\n", f->god_oborot);
            printf("ИНН : %d\n", f->INN);
            if (f->god_oborot > 1000000) {
                printf("Дополнительные сведения доходности: %s\n",f->dop_sved);
            }
        }
    }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2019, 14:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как записать структуру в файл
У меня такая задача, создать структуру, записать ее в файл и редактировать т.е добавлять студентов...

Как записать в структуру данные из файла?
имеется структура struct ceh { char plan; long int num_mis; long int vipusk; } Как...

Подскажите как из массива записать в структуру?
Подскажите как из массива записать в структуру? #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; struct...

Как записать структуру внутрь класса?
Господа проблема заключается в следующем Дали код, сказали на F# перевести и запихать в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.