Нарушение прав доступа при записи (работа с файлами) - 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);

Объяснение кода листинга программы

  1. В коде используется функция scanf_s, которая предназначена для безопасного ввода данных в переменную.
  2. В функции scanf_s первым аргументом является формат ввода, в данном случае %d, который указывает, что необходимо ввести целое число.
  3. Вторым аргументом является переменная deys, в которую будет сохранено введенное значение.
  4. Функция scanf_s выполнит ввод данных и сохранит его в переменной deys.
  5. Введенное значение будет автоматически приведено к типу int (целое число).
  6. Если ввод данных некорректен (например, введено не целое число), то функция scanf_s вернет значение EOF, что можно использовать для обработки ошибок ввода.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5
Похожие ответы