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

Не могу скомпилировать ошибка, ссылка на неразрешенный внешний символ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Output total amount of numbers in the sequence (not summing -1 ) and than numbers themselves http://www.cyberforum.ru/cpp-beginners/thread967479.html
The input contains a sequence of positive integers not exceeding 1000. The sequence ends with -1.Total amount of numbers is not more than 100. Output total amount of numbers in the sequence (not summing -1 ) and than numbers themselves. Input:Sequence is not bigger that 100. Input: 1 3 5 -1 Output: 3 1 3 5
C++ Функция в трабл В чем проблема мне нужно проверить отсортирован ли массив по убыванию? void Sorten(int *Array, int n){ int i; k=0; j=0; for(i; i<n-1; i++) if(Array<Array) k++; else j++; if(k=n-1) cout << "Sorted\n"; http://www.cyberforum.ru/cpp-beginners/thread967477.html
C++ Сформировать целочисленный массив A(2n)
Ещё раз всем добрый вечер, часов я уже надоел, но всё же, помогите разобраться Дано натуральное число n. Сформировать целочисленный массив A(2n), элементами которого являются числа 1, 3, 5, . . . , 2n-1, 2n, 2n-2, 2n-4, . . . , 2. Есть исходный код: #include "stdafx.h" //подключение директив #include <stdio.h> #include <iostream> #include <stdlib.h> #include <math.h>...
C++ Корни квадратного уравнения, кратность случайного числа, процент от числа
Есть три задачи, если кто то когда то решал что подобное помогите плиз 1)Даны 3 вещественных числа. Найти корни квадратного уравнения или вывести что корней нет 2)Определить стоимость покупки если известно что скидка в 3% предоставляется если покупка больше 500 грн., а 5% когда стоимость больше 1000 грн. 3)Сгенерировано целое число в диапазоне от 200 до 300. Определить будет ли число...
C++ в функцию передается параметр const int * http://www.cyberforum.ru/cpp-beginners/thread967436.html
В функцию передается параметр const int *. Для чего этот const: для указателя или для значения по указателю? И как сделать, чтобы в функции не менялись и указатель, и значение? Заранее спасибо)
C++ Шифр Гронсфельда с++ Цезарь работает, а вот с Гронфельдом проблемы. #include <iostream> #include <string> using namespace std; int charToNum (char c) { return int(c)-97; } подробнее

Показать сообщение отдельно
_Kate_
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 92
Записей в блоге: 1
02.10.2013, 20:37     Не могу скомпилировать ошибка, ссылка на неразрешенный внешний символ
Получено следующую ошибку в результате компилирование.
Возможно у меня проблема возникла с проэктом прошу скомпилировать, для начала, спасибо.
Ошибка 10 error LNK2019: ссылка на неразрешенный внешний символ "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl operator-(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (??G@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V01@0@Z) в функции "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl operator+(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (??H@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V01@0@Z) C:\Users\Катя\documents\visual studio 2012\Projects\test\Addition.obj

Реализация длинной арифметики
определение класса: longclass.h
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
    #include <iostream>
#include <stdio.h>
#include <fstream>
#include <stdlib.h>
#include <vector>
#include <string>
#include <stdio.h>
#include <windows.h>
#include <sstream>
#include <math.h>
#include <locale.h>
using namespace std;
 
class verylong
{
    int count1;
    int count2;
    string number1;
    string number2;
    int base;
    bool minus1;
    bool minus2;
public:
    verylong(void)
    {
    base=10;
    minus1=false;
    minus2=false;
    }
 
    int input(string digit1, string digit2) {   //анализатор строки
    int i;
    char tmp;
      if (digit1[0] == '-') {
          for (i=0; i<digit1.size()-1; i++) {
            number1+=digit1[i+1];
          }
       minus1=true;
       count1=digit1.size()-1;
       } else {
         number1=digit1;
         count1=digit1.size();
         }
       for (i=0; i<count1/2; i++) {
           tmp=number1[i];
           number1[i]=number1[(count1-1)-i];
           number1[(count1-1)-i]=tmp;
       }
 
    if (digit2[0] == '-') {
          for (i=0; i<digit2.size()-1; i++) {
            number2+=digit2[i+1];
          }
    minus2=true;
    count2=digit2.size()-1;
    } else {
     number2=digit2;
     count2=digit2.size();
     }
   for (i=0; i<count2/2; i++) {
       tmp=number2[i];
       number2[i]=number2[(count2-1)-i];
       number2[(count2-1)-i]=tmp;
   }
       digit1.clear();
       digit2.clear();
    return 0;
    }
 
    string reverse(string number) {
        double size=number.size(), i;
        char sym;
        for (i=0; i<size/2; i++) {
            sym=number[i];
            number[i]=number[(size-1)-i];
            number[(size-1)-i]=sym;
        }
    return number;
    }
    
    friend string operator+(const string sum1, const string sum2);
    friend string operator% (const string num1, const string num2);
 
 
 
 
    
 
    
    ~verylong(void)
    {
        number1.clear();
        number2.clear();
        minus1=false;
        minus2=false;
    }
};
Реализация функции суммирования:

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
#include <iostream>
#include <math.h>
#include <string>
#include "StdAfx.h"
#include "longclass.h"
 
 
string operator+(const string sum1, const string sum2) {
    verylong TEMP;
    int i=0, carry=0, max=0, dif;
    string result, temp;
    bool flag=false;
    TEMP.input(sum1, sum2);
    result.clear();
    char sym;
    if (TEMP.count2>TEMP.count1) {
        result=TEMP.number1;
        TEMP.number1.clear();
        TEMP.number1=TEMP.number2;
        TEMP.number2.clear();
        TEMP.number2=result;
        result.clear();
        dif=TEMP.count1;
        TEMP.count1=TEMP.count2;
        TEMP.count2=dif;
        dif=0;
        flag=true;
    }
    if (TEMP.count2==TEMP.count1) {
        for (i=TEMP.count1-1; i>=0; i--) {
            if (int(TEMP.number1[i])<int(TEMP.number2[i])) {
                string temp;
                temp=TEMP.number2;
                TEMP.number2.clear();
                TEMP.number2=TEMP.number1;
                TEMP.number1.clear();
                TEMP.number1=temp;
                temp.clear();
                i=-1;
                flag=true;
            }
        }
    }
 
//если оба положительные
if ((TEMP.minus1==false && TEMP.minus2==false) || (TEMP.minus1==true && TEMP.minus2==true)) {
    if (TEMP.count1>TEMP.count2 || TEMP.count1==TEMP.count2) {
       dif=TEMP.count1-TEMP.count2;
       max=TEMP.count2;
    }
    for (i=0; i<max; i++) {
    result+=char(((int(TEMP.number1[i])-48)+((int(TEMP.number2[i])-48)+carry))%TEMP.base)+48;
    if (((int(TEMP.number1[i])-48)+(int(TEMP.number2[i]-48))+carry)>TEMP.base-1) {
    carry=1;
    } else
        carry=0;
    }
    if (TEMP.count1 != TEMP.count2) {
    for (i=max; i<TEMP.count1; i++) {
       if (TEMP.count1>TEMP.count2) {
           result+=char((int(TEMP.number1[i])-48+carry)%TEMP.base)+48;
           if ((int(TEMP.number1[i])-48+carry)>TEMP.base-1) {
           carry=1;
           } else
               carry=0;
       }
    }
    }
    if (carry==1) {
        result+=char(carry)+48;
    }
    carry=result.size();
    for (i=0; i<carry/2; i++) {
        sym=result[i];
        result[i]=result[(carry-1)-i];
        result[(carry-1)-i]=sym;
    }
}
if (TEMP.minus1==false && TEMP.minus2==false) {
   if (result.size()==0) {
      result+="0";
   }
   return result;
}
//если minus1=true и minus2=true
if (TEMP.minus1==true && TEMP.minus2==true) {
    temp=result;
    result.clear();
    result+="-";
    result+=temp;
    if (result.size()==0) {
      result+="0";
   }
   return result;
}
 
temp.clear();
if (TEMP.minus1==false && TEMP.minus2==true) {
//если number1>=number2
   if (!flag) {
   TEMP.minus1=false;
   TEMP.minus2=false;
   TEMP.number1=TEMP.reverse(TEMP.number1);
   TEMP.number2=TEMP.reverse(TEMP.number2);
   result=TEMP.number1-TEMP.number2;
   if (result.size()==0) {
      result+="0";
   }
   return result;
   } else {
     //иначе
    result.clear();
    TEMP.minus1=false;
    TEMP.minus2=false;
    TEMP.number1=TEMP.reverse(TEMP.number1);
    TEMP.number2=TEMP.reverse(TEMP.number2);
    temp=TEMP.number1-TEMP.number2;
    result+="-";
    result+=temp;
    if (result.size()==0) {
      result+="0";
   }
   return result;
   }
}
 
if (TEMP.minus1==true && TEMP.minus2==false) {
//если number1>=number2
   if (!flag) {
   result.clear();
   TEMP.minus1=false;
   TEMP.minus2=false;
   TEMP.number1=TEMP.reverse(TEMP.number1);
   TEMP.number2=TEMP.reverse(TEMP.number2);
   temp=TEMP.number1-TEMP.number2;
   if (temp[0]=='0' && temp.size()==1) { //если 0
       return temp;
   }
   result+="-";
   result+=temp;
   i=0, carry=0, max=0;
   flag=false;
   if (result.size()==0) {
      result+="0";
   }
   return result;
   } else {
   //иначе
     TEMP.minus1=false;
     TEMP.minus2=false;
     TEMP.number1=TEMP.reverse(TEMP.number1);
     TEMP.number2=TEMP.reverse(TEMP.number2);
     result=TEMP.number1-TEMP.number2;
     i=0, carry=0, max=0;
         flag=false;
         if (result.size()==0) {
         result+="0";
         }
     return result;
     }
}
}
main function :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 #include "StdAfx.h"
#include <string>
#include <math.h>
#include "longclass.h"
#include <conio.h>
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    verylong temp;
    int n, m;
    char sym='и';
    string module, key;
    string a="12233252", b="-2424";
    cout << a+b << endl;
 
    system("pause");
    return 0;
}
stadafx.h

C++
1
2
3
4
#include "targetever.h"
 
#include <stdio.h>
#include <tchar.h>
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru