簡體   English   中英

試圖使C ++程序將4位八進制數字轉換為十進制

[英]trying to make a C++ program to convert a 4 digit octal number to decimal

這是我的代碼,我嘗試使用谷歌搜索,但是我可以找到為什么我的代碼無法正確轉換數字的原因。 但是它符合要求。 您能告訴我為什么它不起作用以及我應該怎么做才能解決它。

#include <iostream> 
using namespace std; 

int main() 
{ 
    char a = 0; 
    char b = 0; 
    char c = 0; 
    char d = 0;

    cout << "Enter 4 digit octal number "; 
    cin >> a >> b >> c >> d; 

    cout << "Decimal form of that number: " << (a * 512) + (b * 64) + (c * 8) + d << endl; 

    return 0; 

}

因為您將值作為字符獲取,所以它們可能是您要與之相乘的ascii值。 嘗試使用(a-'0'),(b-'0')等

您還應該驗證輸入內容,以確保它是一個從0到7的數字。

為什么不讓標准庫來工作呢?

#include <ios>
#include <ostream>
#include <iostream>

int main()
{
    unsigned n;
    std::cin >> std::oct >> n;
    std::cout << n << std::endl;
}

將您的值(a,b,c,d)轉換為整數,然后相乘。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM