Форум программистов, компьютерный форум CyberForum.ru

Ошибка компиляции (Debug Assertion Failed) - C++

Восстановить пароль Регистрация
 
God_Den
1 / 1 / 0
Регистрация: 02.07.2013
Сообщений: 13
09.07.2013, 20:45     Ошибка компиляции (Debug Assertion Failed) #1
Ребят помоги, что не так в этом коде? Выдает вот эту ошибку [IMG]http://i051.***********/1307/bf/dffff7cb08e5.png[/IMG]
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
#include "stdafx.h"
#include "DepositList.h"
 
DepositList::DepositList() // Вызывает функцию инит
    {   
        init("C:\\Users\Денис\Desktop\Практика 1 курс\deposit\DepositList.txt"); 
    };
 
void DepositList::init(char filename[]) // инициализация переменной. Заполнение первой  
    {
        file = fopen( filename, "r" );
        DpList tmp_str; // Создание временной структуры 
        while(!feof(file)) // Указывает, что НЕ КОНЕЦ файла
        {
            fscanf(file,"%s %c %f", &tmp_str.DpName, &tmp_str.DpValue, &tmp_str.DpRate); // Читает строку и записывает её во временную структуру
            tmp_str.DpRate=tmp_str.DpRate/100;// ДЕЛИМ  СТО ,СЛУЖЕБНЫЙ ВЫВОД 
            printf("%s %c %f \n",tmp_str.DpName, tmp_str.DpValue, tmp_str.DpRate);// 
            DpL.push_back(tmp_str);//  ПОЛОЖИТЬ В КОНЕЦ 
        }
 
        fclose(file);// ЗАКРЫТЬ ФАЙЛ 
        printf("\n"); 
    };
 
 
void DepositList::calculate()
    {
        //начинаем считать
        Query Q1;// ВЫЗЫВЕМ КЛАССЫ ОБЪЯВЛЯЕМ ПЕРЕМЕННУЮ ЭТОГО ЖЕ КЛАССА 
        Rates Rt1; 
        DpList_out tmp_str; // СОЗДАЕМ ВРЕМЕННУЮ СТРУКТУРУ ТИПА АУТ 
        float tmp_rub=Q1.sum;// СУМ ПЕРЕМЕННАЯ  КЛАССА КВЕРИ 
        float tmp_sum,tmp_rub2; // 
 
        //1. сумму в рубли
        if (Q1.value == 'E')        
            tmp_rub=val_to_rub(Q1.sum,Rt1.euro_now);
        if (Q1.value == '$')
            tmp_rub=val_to_rub(Q1.sum,Rt1.dollar_now);
        printf("summ in R now rate = %f rub\n\n",tmp_rub); // ВЫВОДИМ ЧТО У НАС ПОЛУЧИЛОСЬ 
 
 
        //2. считаем прирост по вкладу,например
        for(int i=0;i<DpL.size();i++) // ДПЛ САЙЗ  ВОЗВРАЩАЮЩАЕТ РАЗМЕР МАССИВА ,ОН ВОЗВРАЩАЕТ ЕЁ ТИПОМ ИНТЕЖЕР ИНТ  
        {
            tmp_sum=tmp_rub;
            
            if (DpL[i].DpValue == 'E')      
                tmp_sum=rub_to_val(tmp_rub,Rt1.euro_now);
            if (DpL[i].DpValue == '$')
                tmp_sum=rub_to_val(tmp_rub,Rt1.dollar_now); //tmp_sum-сумма в валюте вклада
        
            printf("summ in  %c now rate = %f \n",DpL[i].DpValue , tmp_sum);
 
            tmp_sum=((tmp_sum*DpL[i].DpRate)*Q1.time/12)+tmp_sum; // СЧИТАЕМ СКОКА НАТЕЧЁТ ПРОЦЕНТОВ 
 
            printf("summ with percents in  %c %f\n",  DpL[i].DpValue, tmp_sum); // ВЫВОДИМ СКОКА НАТЕКЛО        
 
            tmp_rub2=tmp_sum; 
            if (DpL[i].DpValue == 'E')      
                tmp_rub2=val_to_rub(tmp_sum,Rt1.euro_future);
            if (DpL[i].DpValue == '$')
                tmp_rub2=val_to_rub(tmp_sum,Rt1.dollar_future); //сумма в рублях по ожидаемому курсу
            tmp_rub2-=tmp_rub; // ИЗ КОНЦА ВЫЧИТАЕМ НАЧАЛО 
            printf("profit in Rub %f\n\n", tmp_rub2);  
            //складываем в массив
            // название валюта ставка ожид.прибыль
            tmp_str.DpValue = DpL[i].DpValue;
            tmp_str.DpRate = DpL[i].DpRate;
            memcpy(tmp_str.DpName,DpL[i].DpName,sizeof(DpL[i].DpName)); // КОПИРОВАНИЕ УЧАСТКА   
            tmp_str.profit = tmp_rub2;// СУММУ ЗАКИДЫВАЕМ ВО ВРЕМЕННУЮ СТРУКТУРУ
            //припиливаем к концу вектора
            DpL_out.push_back(tmp_str);
        } 
    };
 
void DepositList:: sort()
    {
        DpList_out tmp_str;
        // сортировка,
        for(int j=0; j<DpL.size()-1; j++) 
            for(int i=j+1; i<DpL.size(); i++)
            {
                if (DpL_out[j].profit < DpL_out[i].profit)
                {
                    //обмен
                    tmp_str=DpL_out[i];
                    DpL_out[i]=DpL_out[j];
                    DpL_out[j]=tmp_str;
                }           
            }
    }
 
void DepositList:: print_out() // ВЫВОДИТ ФАЙЛ  
    {
        sort();
        file = fopen("C:\\Users\Денис\Desktop\Практика 1 курс\deposit\Res.txt", "w" );
        for(int i=0;i<DpL.size();i++)
            fprintf(file,"%s %c %f %f\n",DpL_out[i].DpName,DpL_out[i].DpValue,DpL_out[i].DpRate*100,DpL_out[i].profit);
        fclose(file);
    };
 
float DepositList:: rub_to_val(float rub,float rate) // ПЕРЕГОНЯЕМ ВАЛЮТУ 
    {
        return rub/rate; // ВРЗВРАЩАЕТ В ВЛАЮТЕ 
    }
 
float DepositList:: val_to_rub(float val,float rate) // ПЕРЕГОНЯЕМ ВАЛЮТУ В РУБЛИ 
    {
        return val*rate;
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2013, 20:45     Ошибка компиляции (Debug Assertion Failed)
Посмотрите здесь:

C++ При вызове деструктора возникает ошибка Debug Assertion Failed!
ошибка debug assertion failed C++
C++ ошибка "Debug Assertion Failed".Line 1441!
C++ Debug Assertion Failed
C++ Ошибка "Debug Assertion Failed" после выполнения программы
C++ Ошибка debug assertion failed, как избавиться?
Debug Assertion Failed! C++
Ошибка выполнения: Debug assertion failed C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ntrx
122 / 122 / 19
Регистрация: 03.01.2013
Сообщений: 241
09.07.2013, 23:52     Ошибка компиляции (Debug Assertion Failed) #2
весь код не смотрел но ошибка уже в 6й строке, нужно использовать экранирование для \ (бэкслеша), т.е. \\
God_Den
1 / 1 / 0
Регистрация: 02.07.2013
Сообщений: 13
10.07.2013, 00:01  [ТС]     Ошибка компиляции (Debug Assertion Failed) #3
Спасибо, вроде помогло!
Yandex
Объявления
10.07.2013, 00:01     Ошибка компиляции (Debug Assertion Failed)
Ответ Создать тему
Опции темы

Текущее время: 10:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru