0

在函数Binary_to_Decimal()' [链接器错误] 未定义对 `Decimal_to_Binary()' 的引用 处理十进制到二进制和二进制到十进制程序。不幸的是,我遇到了我缺乏修复知识的编译错误。我将非常感谢帮助解决和了解该问题。 这是程序的源代码。main':
[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;  
        }
4

4 回答 4

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();这是不同的事情。

于 2013-05-06T07:50:36.927 回答
1

你打电话Binary_to_Decimal,但函数被调用Binary_To_Decimal。注意零件中的小写字母和大写字母To。与其他功能相同。

所有基于 C 的语言(如 C++)都区分大小写。

于 2013-05-06T07:51:01.453 回答
1

你命名了你的函数Decimal_To_BinaryBinary_To_Decimal但你用小写的“t”来调用它们,因此编译器不知道你正在调用哪些函数。

名称必须完全匹配,并且区分大小写。

于 2013-05-06T07:51:10.013 回答
0

您正在调用的函数是“Binary_to_Decimal”,但在“Decimal_To_Binary()”中实现的函数{名称不完全相同} ...与“Decimal_to_Binary”的情况相同。

于 2013-05-06T07:56:31.857 回答