2016-10-01 8 views
0

私はこのコードを書いたが、良いと思われたが、出力は常に0になる可能性がありますか?私はちょうど10進数にx番号システムを変換するコードを書いています。C++、x番号システムから10進数への変換

#include <string> 
    #include <iostream> 
    using namespace std; 

int main() { 

string str; 
long szam = 0, Dec, num, Base = 1, x,i=1; 
cout << "the number : "; 
cin >> str; 
cout << "The input number system:"; 
cin >> x; 

    while (str[i] == '\0') 
    { 
     if (str[i] = 'A') { num = 10;} 
     else if (str[i] = 'B') { num = 11; } 
     else if (str[i] = 'C') { num = 12; } 
     else if (str[i] = 'D') { num = 13; } 
     else if (str[i] = 'E') { num = 14; } 
     else if (str[i] = 'F') { num = 15; } 
     else { num = str[i] - '0'; } 

     Dec = Dec + num * Base; 
     Base = Base * x; 

     } 
cout << szam << endl; 
return 0; 

}

もしxより小さい10の容易私が原因数の文字使用の10+システムを扱う傾けます。

+0

コード***を質問そのものに入れてください***。 –

+0

また、英語以外の言語でコードを書くことの主な欠点の1つは、他の惑星から助けを得ることはまずないということです。さらに悪いことに、 "x"のような潜在的な変数名を使うことは*誰からも助けを得ることはまずありません*。 –

+0

Sryあなたは正しいです – Koreszka10

答えて

0
  1. あなたiはないあなたのiは、あなたのループ内でインクリメントされなければならない。1.

  2. から、0から開始する必要があります。現時点では、iは決してインクリメントされないので、常に1の値を持つので、str[1]しか見ていません。str[i] != '\0'ないしばらくstr[i] == '\0'ながら

  3. あなたのループは継続すべきです。

  4. ABCDEFの文字だけでなく、abcdefの文字も扱うことを検討してください。

-1

あなたは正確に必要なものを実行するstd::stolを使用する必要があります。

関連する問題