0 / 0 / 0
Регистрация: 20.04.2020
Сообщений: 1
1

Выводит предупреждение: чтение недопустимых данных из "s"

20.04.2020, 15:55. Показов 404. Ответов 0
Метки нет (Все метки)

Что делать, если из-за предупреждения "чтение недопустимых данных из "s"..." не считываются данные из массива структур в файл


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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <windows.h>
#include <iomanip>
#include <cstring>
struct Shop {
    char Name[15];
    int Cena;
    int Kolich;
    char Prodav[10];
};
Shop s[10];
void Vvod(int* Count)
{
    int t = 0;
    printf("Vvedite kolichestvo strok: ");
    scanf_s("%d", &t);
    while (*Count < t)
    {
        system("CLS");
        printf("\n\t\t\t\tZAPOLNENIE\n");
        printf("Enter Name (<=15 sym): ");
        scanf_s("%s", s[*Count].Name, 15); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        _strupr_s(s[*Count].Name);
 
        printf("Enter Cena: ");
        scanf_s("%d", &s[*Count].Cena);
 
 
        printf("Enter Kolichestvo: ");
        scanf_s("%d", &s[*Count].Kolich);
 
 
 
        printf("Enter Pridavec (<=15 sym): ");
        scanf_s("%s", s[*Count].Prodav, 10);
        _strupr_s(s[*Count].Prodav);
        
        
        (*Count)++;
        
    }   
    printf("Zapolneno\n");
    _getch();
    return;
 
}
 
void prin(int i)
{
 
 
    printf("|%2d|", i + 1);
    
    printf("%13s |", s[i].Name);
    printf("%10d |", s[i].Cena);
    printf("%13d |", s[i].Kolich);
    printf("%14s |", s[i].Prodav);
    printf("\n");
 
    printf("--------------------------------------------------------------\n");
    return;
}
 
void prin_head()
{
    printf("-------------------------------------------------------------\n");
    printf("|N |     Name     |    Cena   | Kolichestvo  |   Prodavec    | \n");
    printf("--------------------------------------------------------------\n");
    return;
}
 
void Vivod (int *Count) {
    system("CLS");
    prin_head();
    for (int i = 0; i < *Count; i++)
    {
        prin(i);
    }
    printf("\n");
    return;
}
 
void save() {
    FILE* sln;
    fopen_s(&sln, "C:\\Users\\User\\source\\repos\\Лаба2222\\slon.dat", "wb");
    fwrite(s, sizeof(Shop), 1, sln);
    fclose(sln);
    if ((fopen_s(&sln, "C:\\Users\\User\\source\\repos\\Лаба2222\\slon.dat", "wb")) == NULL)
    {
        printf("File coldn't create");
        _getch();
        return  ;
    }
    return  ;
}
 
 
 
 
 
 
void add(int* Count)
{
 
    
 
    system("CLS");
    printf("\n\t\t\t\tADD RECORD\n");
    printf("Enter Name (<=15 sym): ");
    scanf_s("%s", s[*Count].Name, 15);
    _strupr_s(s[*Count].Name);
 
    printf("Enter Cena: ");
    scanf_s("%d", &s[*Count].Cena);
 
 
    printf("Enter Kolichestvo: ");
    scanf_s("%d", &s[*Count].Kolich);
 
 
 
    printf("Enter Pridavec (<=15 sym): ");
    scanf_s("%s", s[*Count].Prodav, 10);
    _strupr_s(s[*Count].Prodav);
 
    (*Count)++;
    printf("New record is added\n");
    _getch();
    return;
}
 
 
 
int main()
{
    char c;
    int Count = 0;
    system("CLS");
    FILE* sln;
    
    if ((fopen_s(&sln, "C:\\Users\\User\\source\\repos\\Лаба2222\\slon.dat", "rb")) == NULL) {
        printf("The file does not exist\n");
        fclose(sln);
        printf("Sozdati fail seichas?\n");
        printf("You want continue? (Y\\N) \n");
        c = _getch();
        if ((c == 'n') || (c == 'N'))
        {
            return 1;
        }
        if ((c == 'Y') || (c == 'y'))
        {
            fopen_s(&sln, "C:\\Users\\User\\source\\repos\\Лаба2222\\slon.dat", "rb");
        }
    }
    else {
 
        fread(&s, sizeof(Shop), 1, sln);
    }
    fclose(sln);
 
    
    while (1) {
        system("CLS");
 
        printf("Menu: \n");
        printf("1. Vvod\n");
        printf("2. Vivod\n");
        printf("3. Dobavlenie stroki\n");
        printf("4. Exit\n");
        printf("Vvedite nomer: \n");
        c = _getch();
        switch (c) {
        case '1':  Vvod(&Count); break;
 
        case '2': Vivod(&Count); _getch(); break;
 
        case '3':add(&Count); break;
 
        case '4': printf("\nYou really want to leave? (Y\\N) \n");
 
            _getch();
 
            c = _getch();
            if ((c == 'y') || (c == 'Y')) { save(); return 1; }
        }
    }
    
    return 0;
 
 
}

подчеркивает строчку, которая помечена восклицательными знаками
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2020, 15:55
Ответы с готовыми решениями:

Чтение недопустимых данных, динамические массивы, типы данных
Добрый день, реализую метод интерполяции сплайнами на С++, при подсчете одного из коэффициентов...

Чтение недопустимых данных, динамические массивы, типы данных
Добрый день, у меня задание найти обратную матрицу методом Гаусса-Жордана, и на моменте складывание...

Чтение недопустимых данных и переполнение буфера
Жалуется на чтение недопустимых данных на 24 и 55 строках, и на переполнение буфера на 51 и 61...

В чем причина ошибки C6385 "Чтение недопустимых данных?"
int main() { int n, j, i, k,m; cout.precision(4); cout.setf(ios::fixed); cout &lt;&lt; &quot;\nEnter...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2020, 15:55
Помогаю со студенческими работами здесь

защита от недопустимых исходных данных и промежуточных результатов
в программе должна быть предусмотрена защита от недопустимых исходных данных и промежуточных...

Двумерные массивы. При вводе данных появляется сообщение о недопустимых значениях
Всех приветствую, я совсем недавно начал изучать C#, мне был приведен пример выполнения работы в...

Почему график пустой и выводит предупреждение
Добрый день! Помогите разобраться, почему у меня график пустой, и выводит предупреждение? Впроде бы...

Подскажите, пожалуйста как выводит предупреждение
Здравствуйте Подскажите, пожалуйста как выводит предупреждение.... 1. после занесенные в...

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -&gt; Vehicles -&gt; Firetruck_0 В этой папке лежит...

Организовать чтение данных из файла данных и вывод результата в файл данных
Организовать чтение данных из файла данных и вывод результата в файл данных. (Программа, сохраняя...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru