|
0 / 0 / 0
Регистрация: 22.12.2022
Сообщений: 17
|
|
Scanf вызывает исключение при попытке записать в структуру текст22.12.2022, 10:05. Показов 436. Ответов 5
Метки нет (Все метки)
// __ _ _ ____
// / / __ _| |__ / | ___| // / / / _` | '_ \| |___ \ // / /__| (_| | |_) | |___) | // \____/\__,_|_.__/|_|____/ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <ctime> #include <conio.h> #include <locale.h> struct worker_info { char name[10]; int year; int month; int day; }; int main(){ setlocale(LC_ALL, "RU"); int mode, total_workers, max_work_expirience_number = 0; do { printf("Как будем заполнять данные?\n[\033[0;31m1\033[0;37m]Вручную\n[\033[0;31m2\033[0;37m]Из файла\nВыберите режим (\033[0;31m1-2\033[0;37m): "); scanf_s("%d", &mode); } while (mode != 1 && mode != 2); switch (mode) { case(1): { do { printf("Введите количество работников не более \033[0;31m100\033[0;37m: "); scanf_s("%d", &total_workers); } while (mode <= 0 || mode > 100); worker_info worker_list[100]; for (int i = 0; i < total_workers; i++) { do { printf("\nВы заполняете данные работника \033[0;31m№%d\033[0;37m\n", i + 1); printf("Введите имя работника: "); scanf_s("%s\n", &worker_list[i].name); printf("Введите дату поступления на работу в формате \033[0;31mdd.mm.yyyy\033[0;37m, не забудьте про високосные года и пенсионный возраст: "); scanf_s("%d.%d.%d", &worker_list[i].day, &worker_list[i].month, &worker_list[i].year); } while ((worker_list[i].year % 4 == 0 && worker_list[i].month == 2 && worker_list[i].day >= 30) || (worker_list[i].year % 4 != 0 && worker_list[i].month == 2 && worker_list[i].day >= 29) || ((worker_list[i].month == 1 || worker_list[i].month == 3 || worker_list[i].month == 5 || worker_list[i].month == 7 || worker_list[i].month == 8 ||worker_list[i].month == 10 || worker_list[i].month == 12) && (worker_list[i].day >= 32 || worker_list[i].day <= 0)) || ((worker_list[i].month == 4 || worker_list[i].month == 6 || worker_list[i].month == 9 || worker_list[i].month == 11) && worker_list[i].day >= 31 || worker_list[i].day <= 0) || (worker_list[i].year <= 1962 || worker_list[i].year >= 2023)); } for (int i = 0; i < total_workers - 1; i++) { if (worker_list[i].year <= worker_list[i + 1].year) if (worker_list[i].month <= worker_list[i + 1].month) if (worker_list[i].day <= worker_list[i + 1].day) { worker_list[i + 1].year = worker_list[i].year; worker_list[i + 1].year = worker_list[i].month; worker_list[i + 1].year = worker_list[i].day; max_work_expirience_number = i; } } } } worker_info worker_list[100]; printf("%s", worker_list[max_work_expirience_number].name); }
0
|
|
| 22.12.2022, 10:05 | |
|
Ответы с готовыми решениями:
5
Записать текст в LPCTSTR с cin или scanf Есть идеи почему вызывает исключение, при выводе массива? |
|
Вездепух
13182 / 6818 / 1821
Регистрация: 18.10.2014
Сообщений: 17,257
|
|
| 22.12.2022, 10:08 | |
|
1
|
|
|
2326 / 1568 / 722
Регистрация: 17.03.2022
Сообщений: 5,064
|
|
| 22.12.2022, 10:08 | |
|
Nevenuga, начните с нормального оформления кода - и для размещения на форуме, и просто для использования. То, что вы выложили, нечитаемо.
0
|
|
|
0 / 0 / 0
Регистрация: 22.12.2022
Сообщений: 17
|
|
| 22.12.2022, 10:09 [ТС] | |
|
Да, я понимаю,что тут ошибка, что необходимо сделать,чтобы избавиться от этого недуга?
0
|
|
|
Вездепух
13182 / 6818 / 1821
Регистрация: 18.10.2014
Сообщений: 17,257
|
|
| 22.12.2022, 10:10 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 22.12.2022
Сообщений: 17
|
|
| 22.12.2022, 11:21 [ТС] | |
|
Сделал все как написано, выводит кучу букв М, а так же заполняет все ячейки этими самыми буквами
// __ _ _ ____ // / / __ _| |__ / | ___| // / / / _` | '_ \| |___ \ // / /__| (_| | |_) | |___) | // \____/\__,_|_.__/|_|____/ #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <ctime> #include <conio.h> #include <locale.h> struct worker_info { char name[100]; int year; int month; int day; }; int main(){ setlocale(LC_ALL, "RU"); int mode, total_workers, max_work_expirience_number = 0; do { printf("Как будем заполнять данные?\n[\033[0;31m1\033[0;37m]Вручную\n[\033[0;31m2\033[0;37m]Из файла\nВыберите режим (\033[0;31m1-2\033[0;37m): "); scanf_s("%d", &mode); } while (mode != 1 && mode != 2); switch (mode) { case(1): { do { printf("Введите количество работников не более \033[0;31m100\033[0;37m: "); scanf_s("%d", &total_workers); } while (mode <= 0 || mode > 100); worker_info worker_list[100]; for (int i = 0; i < total_workers; i++) { do { printf("\nВы заполняете данные работника \033[0;31m№%d\033[0;37m\n", i + 1); printf("Введите имя работника: "); scanf_s("%s", worker_list[i].name, 100u); printf("Введите дату поступления на работу в формате \033[0;31mdd.mm.yyyy\033[0;37m, не забудьте про високосные года и пенсионный возраст: "); scanf_s("%d.%d.%d", &worker_list[i].day, &worker_list[i].month, &worker_list[i].year); } while ((worker_list[i].year % 4 == 0 && worker_list[i].month == 2 && worker_list[i].day >= 30) || (worker_list[i].year % 4 != 0 && worker_list[i].month == 2 && worker_list[i].day >= 29) || ((worker_list[i].month == 1 || worker_list[i].month == 3 || worker_list[i].month == 5 || worker_list[i].month == 7 || worker_list[i].month == 8 ||worker_list[i].month == 10 || worker_list[i].month == 12) && (worker_list[i].day >= 32 || worker_list[i].day <= 0)) || ((worker_list[i].month == 4 || worker_list[i].month == 6 || worker_list[i].month == 9 || worker_list[i].month == 11) && worker_list[i].day >= 31 || worker_list[i].day <= 0) || (worker_list[i].year <= 1962 || worker_list[i].year >= 2023)); } for (int i = 0; i < total_workers - 1; i++) { if (worker_list[i].year <= worker_list[i + 1].year) if (worker_list[i].month <= worker_list[i + 1].month) if (worker_list[i].day <= worker_list[i + 1].day) { worker_list[i + 1].year = worker_list[i].year; worker_list[i + 1].year = worker_list[i].month; worker_list[i + 1].year = worker_list[i].day; max_work_expirience_number = i; } } } } worker_info worker_list[100]; printf("%s", worker_list[max_work_expirience_number].name); }
0
|
|
| 22.12.2022, 11:21 | |
|
Помогаю со студенческими работами здесь
6
scanf, при попытке ввести что либо вместо цифр, вывести сообщение Сокеты. Исключение при попытке переподключения
Исключение при попытке вывести изображение
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|