在函数main':
Binary_to_Decimal()'中
[链接器错误]未定义引用`Decimal_to_Binary()'
[Linker error] undefined reference to
使用十进制到二进制和二进制到十进制程序。
不幸的是,我遇到了我缺乏修复知识的编译错误。
我非常感谢帮助修复和了解这个问题
这是该程序的源代码。
#include <iostream>
#include <string>
#include <bitset>
void Binary_to_Decimal();
void Decimal_to_Binary();
int main (int argv, char argc) {
while(1<2){
int m_Choice;
std::cout << "Enter 1 - for Binary to Decimal" << std::endl;
std::cout << "Enter 2 - for Decimal to Binary" << std::endl;
std::cin >> m_Choice;
if (m_Choice == 1) {
Binary_to_Decimal();
}else if (m_Choice == 2) {
Decimal_to_Binary();
}
return 0;
}
}
void Binary_To_Decimal(){
std::string Binary_to_Decimal_cstr;
std::cout << "Please enter binary number: " << std::endl;
std::cin>>Binary_to_Decimal_cstr;
std::cout<<Binary_to_Decimal_cstr;
std::cout <<"converted to Decimal is:" << std::bitset<32>(Binary_to_Decimal_cstr).to_ulong();
std::cout << std::endl;
}
void Decimal_To_Binary(){
int Decimal_to_Binary_Var;
std::cout << "Please enter Decimal number: " << std::endl;
std::cin >> Decimal_to_Binary_Var;
std::cout << Decimal_to_Binary_Var;
std::cout << "converted to Binary is: " << std::bitset<32>(Decimal_to_Binary_Var);
std::cout << std::endl;
}
答案 0 :(得分:1)
区分大小写的问题!
void Binary_to_Decimal(); --> void Binary_To_Decimal();
^ ^
void Decimal_to_Binary(); --> void Decimal_To_Binary();
^ ^
编译器搜索void Binary_to_Decimal()
,但您实现了void Binary_To_Decimal();
,这是另一回事。
答案 1 :(得分:1)
您致电Binary_to_Decimal
,但该功能名为Binary_To_Decimal
。请注意To
部分中的小写和大写字母。与其他功能相同。
所有基于C的语言(如C ++)都区分大小写。
答案 2 :(得分:1)
您将函数命名为Decimal_To_Binary
和Binary_To_Decimal
,但是您使用“t”小写来调用它们,因此编译器不知道您正在调用哪些函数。
名称必须完全匹配,并且区分大小写。
答案 3 :(得分:0)
您正在调用的函数是“Binary_to_Decimal”,但函数在“Decimal_To_Binary()”{Names不完全相同}中实现} ...与大小写“Decimal_to_Binary”相同。