0
今のところ、sumtwonums.cpp
ファイルからコードを実行できますが、メインから実行しようとすると多くのエラーが発生します。私は非常に長い時間このコードを研削してきましたが、私はそれを手に入れることはできません。 (私はC++の初心者ですので、コードを大幅に改善できます)。
とにかく、sumから実行しようとしたときにエラーが表示されます。C++ - 定義されていない複数ファイルの関数への参照
#include <iostream>
#ifndef SUMTWONUMS_H
#define SUMTWONUMS_H
const int LENGTH = 20;
struct SumTwoNums{
public:
int array[LENGTH];
char c_array[LENGTH];
};
void input(SumTwoNums &s);
void sum(SumTwoNums &s1, SumTwoNums &s2, int s[]);
void print (SumTwoNums &s);
void print (int a[]);
#endif
#include "sumtwonums.h"
using namespace std;
void sum(SumTwoNums &s1, SumTwoNums &s2, int s[]){
for (int i = LENGTH-1; i >= 0; i--){
if (s1.array[i] + s2.array[i] + s [i] > 9 && i != LENGTH-1){
s [i] += (s1.array[i] + s2.array[i] - 10);
s [i-1] += 1;
}else if (s1.array[i] + s2.array[i] + s [i]<= 9 && i != LENGTH-1){
s [i] += s1.array[i] + s2.array[i];
}else if (i == LENGTH-1 && s1.array[i] + s2.array[i] + s [i]> 9){
s[i] += s1.array[i] + s2.array[i];
s[i-1] += 1;
}else if (i == LENGTH-1 && s1.array[i] + s2.array[i] + s [i] <= 9){
s[i] += s1.array[i] + s2.array[i];
}else if (i == LENGTH-1 && s1.array[i] + s2.array[i] + s [i] > 9){///////
s [i] += (s1.array[i] + s2.array[i]); ////Check To see if overflow
cout << "There is an overflow" << endl; ///////
}
}
}
void input(SumTwoNums &s){
int dig = 0;
for (int i = 0; i < LENGTH; i++){
s.array[i] = 0;
}
cout << "Please enter a number:\n";
char next;
int x = LENGTH-1;
cin.get(next);
while (next != '\n' && next != 'E' && x >= 0){
dig++;
s.c_array[x] = next;
cin.get(next);
x--;
}
for (int i = 1; i <= LENGTH; i++){
if (dig != 0) {
s.array[LENGTH - dig] = s.c_array[LENGTH - i] - '0';
dig--;
}
}
}
void print (SumTwoNums &s){
int count = 2;
for (int i = 0; i < LENGTH ; i++){
if (s.array[i] != 0 || (s.array[i - 1] != 0 && s.array[i] == 0 && s.array[i + 1] != 0)){
cout << s.array[i];
if (count%3==0 && count != 0 && i != LENGTH-1){
cout << ",";
}
}
count++;
}
cout << endl;
}
void print (int a[]){
int count = 2;
for (int i = 0; i < LENGTH ; i++){
if (a[i] != 0 || (a[i - 1] != 0 && a[i] == 0 && a[i + 1] != 0)){
cout << a[i];
if (count%3==0 && count != 0 && i != LENGTH-1){
cout << ",";
}
}
count++;
}
cout << endl;
}
sum.cpp
次のように示される:
#include <iostream>
#include "sumtwonums.h"
using namespace std;
int main() {
SumTwoNums num1;
SumTwoNums num2;
int total [LENGTH];
int rtotal [LENGTH];
for (int i = 0; i < 20; i ++){
total[i] = 0;
rtotal[i] = 0;
}
input(num1);
input(num2);
print(num1);
print(num2);
sum (num1,num2,total);
print(total);
return 0;
}
私はこの質問は前に頼まれているけど、私は答えを見つけることができませんでした、次のように示さ
In function 'main':
16 C:\Users\jozef\Desktop\SYDE 2017\SYDE 121 LABS\Lab702\sum.cpp undefined reference to `input(SumTwoNums&)
17 C:\Users\jozef\Desktop\SYDE 2017\SYDE 121 LABS\Lab702\sum.cpp undefined reference to `input(SumTwoNums&)
18 C:\Users\jozef\Desktop\SYDE 2017\SYDE 121 LABS\Lab702\sum.cpp undefined reference to `print(SumTwoNums&)'
19 C:\Users\jozef\Desktop\SYDE 2017\SYDE 121 LABS\Lab702\sum.cpp undefined reference to `print(SumTwoNums&)'
20 C:\Users\jozef\Desktop\SYDE 2017\SYDE 121 LABS\Lab702\sum.cpp undefined reference to `sum(SumTwoNums&, SumTwoNums&, int*)'
21 C:\Users\jozef\Desktop\SYDE 2017\SYDE 121 LABS\Lab702\sum.cpp undefined reference to `print(int*)'
sumtwonums.cpp
適切に理解する。ありがとうございました。
どのようにあなたのプログラムを構築するのですか?すべてのオブジェクトファイルとリンクするか、ビルド時にすべてのソースファイルを使用しますか? –
'sum.cpp'ファイルとは何ですか? – Daniel
http://idownvotedbecau.se/beingunresponsive –