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

Ошибки в программе после распределения по файла

12.12.2019, 10:09. Показов 566. Ответов 6
Метки c++ (Все метки)

Здравствуйте, написал программу и распределил её по файлам. Но после распределения программы по файлам выдаёт ошибку. ошибку показывает в стандартной функции
C++
1
strcpy
Файлы программ:
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#define _CRT_SECURE_NO_WARNINGS// хрень чтобы компилятор не ругался на strcpy
#include <iostream>
#include "mysor.h"
#include "vvod.cpp"
#include "vihod.cpp"
 
 
using namespace std;
 
 
int main()
{
    system("chcp 1251");
    system("cls");
    vvod();
    vihod();
 
}
mysor.h с структурой:
C++
1
2
3
4
5
6
7
8
#pragma once
#define M 15
#define N 1
struct AEROFLOT {
    char kuda[M];
    int num;
    char type[M];
};
основной .cpp с вводом и выводом:
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
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <cstdlib>
#include <cstring>
#include "mysor.h"
 
using namespace std;
 
 
 
void vvod() {
    system("chcp 1251");
    system("cls");
    AEROFLOT fly[N];
    int i;
    int j = 0;
    bool flg;
    for (i = 0; i < N; i++) {
 
        cout << "\nВведите номер рейса: ";
 
        while (1) {
            flg = true;
            fflush(stdin);
            cin >> fly[i].num;
 
            for (j = 0; j < i; j++) {
                if (fly[i].num == fly[j].num) {
                    flg = false;
                    cout << endl
                        << "|!| В системе уже имеется запись о самолёте" << endl
                        << "|!| (" << fly[i].num << ")" << endl
                        << "|!| Скорректируйте данные" << endl
                        << endl << "Введите номер рейса: ";
                    break;
                }
            }
            if (flg) {
                break;
            }
        }
        cout << "\nВведите тип самолёта "; cin >> fly[i].type;
        cout << "\nВведите пункт назначения "; cin >> fly[i].kuda;
    }
    char cur[M];
    for (i = 0; i < N - 1; i++)
        for (int j = i + 1; j < N; j++)
            if (strcmp(fly[i].kuda, fly[j].kuda) > 0)
            {
                strcpy(cur, fly[i].kuda);
                strcpy(fly[i].kuda, fly[j].kuda);
                strcpy(fly[j].kuda, cur);
            }
    cout << "\n ________________________________________________________\n";
    for (i = 0; i < N; i++) {
        cout << fly[i].kuda << "    " << fly[i].num << "    " << fly[i].type << endl;
 
    }
    cout << "\n ________________________________________________________\n";
    char temp[M];
    int count;
    while (strcmp(temp, "exit")) {
        cout << "\nВведите желаемый тип самолёта: "; cin >> temp;
        count = 0;
        for (i = 0; i < N; i++) {
            if (strcmp(fly[i].type, temp) == 0) {
                cout << endl << fly[i].kuda << "    " << fly[i].num << endl;
                count++;
            }
        }
        if (count == 0) cout << endl << " Нет таких рейсов\n";
    }
}
в этом файле и ошибка
мне её показывает на данных строках:
C++
1
2
3
4
5
6
7
8
9
char cur[M];
    for (i = 0; i < N - 1; i++)
        for (int j = i + 1; j < N; j++)
            if (strcmp(fly[i].kuda, fly[j].kuda) > 0)
            {
                strcpy(cur, fly[i].kuda);
                strcpy(fly[i].kuda, fly[j].kuda);
                strcpy(fly[j].kuda, cur);
            }
и файл выхода, он чучуть не правильный. Но упустим данный факт:
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include "mysor.h"
 
using namespace std;
void vihod() {
    char vi;
    cout << "Хотите выйти из программы? da/net" << endl;
    cout << "->"; cin >> vi;
    if (vi == 'da') { exit(0); }
}
Буду благодарен за информацию как решить данную проблему.
Миниатюры
Ошибки в программе после распределения по файла  
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2019, 10:09
Ответы с готовыми решениями:

Возвращение к программе,после ошибки ввода времени (try,catch)
Есть таймер для выключение ПК,при нажатии на кнопку он запускается. Если время указано не верно...

Помогите исправить ошибки в программе для чтения файла
Здравствуйте! Пишу программу для чтения файла. Пожалуйста укажите на ошибку в коде. Времени не...

Ошибка в программе после ввода названия файла
Помогите найти проблему в небольшой программе. Вылетает с ошибкой 217 после того, как ввожу...

Найти ошибки в данной программе (известно что есть только 2 ошибки)
У меня в модуле с програмирования задание: Найти ошибки в данной программе (известно что есть...

6
858 / 447 / 112
Регистрация: 06.07.2013
Сообщений: 1,494
12.12.2019, 10:38 2
Все же написано в ошибке
"strcpy - опасная функция, используйте strcpy_s вместо нее или выставите дефайн"
0
4 / 4 / 0
Регистрация: 11.09.2017
Сообщений: 99
12.12.2019, 10:45  [ТС] 3
Raali, если я поставлю
Цитата Сообщение от Raali Посмотреть сообщение
используйте strcpy_s
.
C++
1
2
3
4
5
6
7
8
for (i = 0; i < N - 1; i++)
        for (int j = i + 1; j < N; j++)
            if (strcmp(fly[i].kuda, fly[j].kuda) > 0)
            {
                strcpy_s(cur, fly[i].kuda);
                strcpy_s(fly[i].kuda, fly[j].kuda);
                strcpy_s(fly[j].kuda, cur);
            }
мне выдаёт вот такую хрень.
Миниатюры
Ошибки в программе после распределения по файла  
0
1285 / 902 / 479
Регистрация: 05.12.2013
Сообщений: 2,974
12.12.2019, 11:22 4
Вы инклюдите cpp файлы, вот и ошибка

C++
1
2
#include "vvod.cpp"
#include "vihod.cpp"
0
4 / 4 / 0
Регистрация: 11.09.2017
Сообщений: 99
12.12.2019, 11:43  [ТС] 5
Цитата Сообщение от ТабуретY Посмотреть сообщение
Вы инклюдите cpp файлы, вот и ошибка
я не понял? что вы хотите этим сказать?
0
858 / 447 / 112
Регистрация: 06.07.2013
Сообщений: 1,494
12.12.2019, 12:06 6
Цитата Сообщение от dimazavt Посмотреть сообщение
я не понял? что вы хотите этим сказать?
Просто мысленно представь что будет если вместо include вставить содержимое файла и все встанет на свои места

компилятор собирает все файлы cpp
в vvod.cpp уже реализована функция vvod() {}
в main.cpp тоже реализована функция vvod() {}
какое тело ему брать на этапе линковки? из первого файла или из второго когда дело доходит до вызова функции vvod?

вас вообще учат как собирается исполняемый файл?
0
4 / 4 / 0
Регистрация: 11.09.2017
Сообщений: 99
12.12.2019, 12:32  [ТС] 7
Цитата Сообщение от Raali Посмотреть сообщение
вас вообще учат как собирается исполняемый файл?
нам сказали раскидать программу по файлам. Но как это сделать не сказали.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2019, 12:32
Помогаю со студенческими работами здесь

В первой программе создать два файла.о второй программе второй файл заполнить числами из первого файла
(Файловый тип) В первой программе создать два файла. Первый файл заполнить 20 записями случайных...

Найти интегральную ф-цию распределения, вычислить числовые хар-и и построить графики функции распределения и плотности распределения
Непрерывная случайная величина задана плотностью распределения. Найти интегральную функцию...

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

Закон распределения , полигон распределения функция распределения для Пуасона
Завод отправляет на базу 500 изделий. Вероятность повреждения изделия при перевозке равна 0,002....


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

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

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