Нарушение прав доступа при записи (работа с файлами) - C (СИ)
Формулировка задачи:
вообщем такая проблема (на скринах),если я правильно понял то что то с переменной не так. прощу помощи и совета.
если есть замечания по коду буду руд выслушать
#include "stdafx.h" #include <stdio.h> #include <conio.h> #include <iostream> #include <string.h> #include <locale.h> char file[100]; char i=0; int deys=0; long int password; long int pasw; int kolzap; struct texnika { char naz[100]; char tip[100]; int kol_vo; int god; int cena; }; struct texnika tender[10]; int main(){ setlocale(LC_ALL,"Russian"); printf("Введите пароль: "); scanf_s("%ld",&password); pasw = 123456789; if(password!=pasw){ printf("Неверный пароль"); getch();} else { printf ("Выберите действие:\n"); printf ("(1) Просмотр информации\n"); printf ("(2) Добавление информации\n"); printf ("(3) Удаление ифнормации\n"); printf ("(4) Редактирование информации\n"); printf ("(5) Выход\n"); scanf_s("%d",deys); switch(deys){ case (1): FILE *fl; fl=fopen("c:\\Users\\Alexandr\\Desktop\\input.txt","r"); printf("\n|Название| Тип |Кол-во| Год | Цена |\n\n"); while (fscanf (fl, "%s%s%d%d%d", tender[i].naz, &(tender[i].tip), &(tender[i].kol_vo), &(tender[i].god), &(tender[i].cena)) != EOF) { printf(" %s %s %d\t %d %d\n", tender[i].naz, tender[i].tip, tender[i].kol_vo, tender[i].god, tender[i].cena); i++;} break; case (2): printf("Введите количество новых записей: \n"); scanf("%d",&kolzap); for (i=0;i<=kolzap;++i) fl=fopen("c:\\Users\\Alexandr\\Desktop\\input.txt","a"); printf ("Введите название:\n"); fprintf(fl,"%s",tender[i].naz); printf ("Введите тип:\n"); fprintf(fl,"%s",tender[i].tip); printf ("Введите количество\n"); fprintf(fl,"%s",tender[i].kol_vo); printf ("Введите год выпуска\n"); fprintf(fl,"%s",tender[i].god); printf ("Введите цену\n"); fprintf(fl,"%s",tender[i].cena); break; case (3): ;break; case (4): ;break; case (5): ;break; getch(); } } }
Решение задачи: «Нарушение прав доступа при записи (работа с файлами)»
textual
Листинг программы
scanf_s("%d",deys);
Объяснение кода листинга программы
- В коде используется функция scanf_s, которая предназначена для безопасного ввода данных в переменную.
- В функции scanf_s первым аргументом является формат ввода, в данном случае
%d
, который указывает, что необходимо ввести целое число. - Вторым аргументом является переменная deys, в которую будет сохранено введенное значение.
- Функция scanf_s выполнит ввод данных и сохранит его в переменной deys.
- Введенное значение будет автоматически приведено к типу int (целое число).
- Если ввод данных некорректен (например, введено не целое число), то функция scanf_s вернет значение EOF, что можно использовать для обработки ошибок ввода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д