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

Нарушение прав доступа при записи

10.03.2015, 11:55. Просмотров 267. Ответов 3
Метки нет (Все метки)

Всем привет, нужно было сделать справочник, atoi(a) выделяет как ошибку, ЧЯДНТ?

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
#include <iostream>
#include <fstream>
#include "stdafx.h"
#include <stdio.h>
#include <cstdlib>
using namespace std;
 
ifstream f1;
 
struct {
    char nomer[50];
    char kuda[50];
    char time[50];
    unsigned short year : 7;
    unsigned short month : 4;
    unsigned short date : 5;
    char price[50];
    char places[50];
 
} aviareyses[3];
 
void searchByData(){
 
    ofstream f2;
    f2.open("B.txt", ios_base::out);
 
    int day;
    cout << "\n Введите дату: "; cin >> day;
 
    for (int i = 0; i <= 2; i++){
 
        bool f = true;
 
        if (aviareyses[i].date != day) {
            f = false;
        }
 
        if (f) {
            f2 << "\n " << aviareyses[i].nomer << endl;
            f2 << " " << aviareyses[i].kuda << endl;
            f2 << " " << aviareyses[i].time << endl;
            f2 << " " << aviareyses[i].date << "." << aviareyses[i].month << "." << aviareyses[i].year << endl;
            f2 << " " << aviareyses[i].price << endl;
            f2 << " " << aviareyses[i].places << endl;
        }
 
    }
 
}
 
int main(){
 
    f1.open("A.txt");
 
    char line[100];
    int i = 0;
    while (!f1.eof()) {
        // номер рейса
        f1.getline(line, sizeof(line));
        for (int c = 0; c <= strlen(line); c++) {
            aviareyses[i].nomer[c] = line[c];
        }
 
        // пункт назначения
        f1.getline(line, sizeof(line));
        for (int c = 0; c <= strlen(line); c++) {
            aviareyses[i].kuda[c] = line[c];
        }
 
        // время вылета
        f1.getline(line, sizeof(line));
        for (int c = 0; c <= strlen(line); c++) {
            aviareyses[i].time[c] = line[c];
        }
 
        // год вылета
        f1.getline(line, sizeof(line));
        string a = line;
        aviareyses[i].year = atoi(a);
 
        // месяц вылета
        f1.getline(line, sizeof(line));
        a = line;
        aviareyses[i].month = atoi(a);
 
        // день вылета
        f1.getline(line, sizeof(line));
        a = line;
        aviareyses[i].date = atoi(a);
 
        // цена билета
        f1.getline(line, sizeof(line));
        for (int c = 0; c <= strlen(line); c++) {
            aviareyses[i].price[c] = line[c];
        }
 
        // количество мест
        f1.getline(line, sizeof(line));
        for (int c = 0; c <= strlen(line); c++) {
            aviareyses[i].places[c] = line[c];
        }
 
        f1.getline(line, sizeof(line));
 
        i++;
 
    }
 
    cout << " Выберите одну из функций работы со структурой:\n";
    cout << " 0 - выйти\n";
    cout << " 1 - поиск по дате";
 
    int f; bool p = true;
    while (p) {
        cout << "\n\n Функция: "; cin >> f;
 
        switch (f) {
        case 0:
            p = false;
            break;
 
        case 1:
            searchByData();
            break;
        }
    }
 
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2015, 11:55
Ответы с готовыми решениями:

Нарушение прав доступа при записи
Есть следующий код: class A { public: virtual someFuncA() = 0; }; class B : public A

Нарушение прав доступа при записи
Привет всем! Извините за тупизм но у меня проблема. #include &lt;iostream&gt; using namespace std; ...

Нарушение прав доступа при записи
Пытаюсь написать класс, который бы выполнял инициализацию шрифта в directx и печатал строку на...

Нарушение прав доступа при записи
#include &lt;iostream&gt; void testfunc(char*&amp; test) { test = 's'; } int main() { char* test...

3
6907 / 5972 / 2709
Регистрация: 14.04.2014
Сообщений: 25,504
10.03.2015, 11:59 2
Для чего этот промежуточный string?
C++
1
2
        f1.getline(line, sizeof(line));
        aviareyses[i].year = atoi(line);
0
0 / 0 / 0
Регистрация: 08.03.2015
Сообщений: 14
10.03.2015, 12:06  [ТС] 3
нет прямой функции для преобразования char[] в int
0
Модератор
Эксперт С++
9785 / 8349 / 5087
Регистрация: 18.12.2011
Сообщений: 22,317
10.03.2015, 12:27 4
Цитата Сообщение от merryadventurer Посмотреть сообщение
for (int c = 0; c <= strlen(line); c++)
{ aviareyses[i].nomer[c] = line[c]; }
Почему нельзя
C++
1
strcpy(aviareyses[i].nomer,line);
И измените
C++
1
char line[50]; // в структуре элементы по 50 символов
Добавлено через 14 минут
Цитата Сообщение от merryadventurer Посмотреть сообщение
unsigned short year : 7;
unsigned short month : 4;
unsigned short date : 5;
Я бы все же написал
C++
1
2
3
 unsigned short year; // 2015 в 7 бит не поместится
    unsigned char month;
    unsigned char date;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2015, 12:27

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

Нарушение прав доступа при записи
void FilterStamp() { char ch; cout&lt;&lt;&quot;Введите Да или Нет: &quot;; scanf_s(&quot;%s&quot;,ch);...

Нарушение прав доступа при записи
Доброго времени суток всем! Перечитал много тем на форуме и в интернете. Никак не могу решить свою...

Нарушение прав доступа при записи
Выводит правильный результат, но при закрытии показывает ошибку: &quot;Вызвано исключение по адресу...

Нарушение прав доступа при записи
Создаю свой класс ошибок следующим образом: class SecureTransportException { private:...


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

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

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