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_Binaryに名前を付けBinary_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 に答える