簡體   English   中英

在C ++中將十進制轉換為十六進制的混亂

[英]Confusion converting decimal to hexadecimal in C++

#include <string>
#include <iostream>

using namespace std;

const string hexConversion = "0123456789ABCDEF";

int main() {
    int dec, remainder, quotient; 
    string hexNum = "";

    //input sequence
    cout << "Enter a decimal number: "; 
    cin >> dec; 
    quotient = dec; 

//conversion
    do {
        remainder = quotient % 16; 
        quotient /= 16; 
        hexNum.insert(0, hexConversion[remainder]); 
    } while (quotient != 0); 

    cout << "Your number in hex is " << hexNum << "."; 

}

我沒有大量的編碼經驗,並且希望能對我在此程序中做錯的事情有所了解! 這是正在傳達的錯誤:從'char'到'const char *'的無效轉換[-fpermissive]

您正在嘗試使用std :: string :: insert的重載之一,但是它們都不接受int和char:

您需要匹配的一項是接受位置,計數和符號,因此調用hexNum.insert(0, 1, hexConverstion[remainder]);

如果您想使用以下功能:

iterator insert( iterator pos, CharT ch );

您需要使用:

hexNum.insert(hexNum.begin(), hexConverstion[remainder]); 

之所以出現該錯誤,是因為沒有這樣的重載版本的string::insert ,它使用intchar作為參數。

您可以使用此重載版本:

 string& insert (size_t pos, size_t n, char c);                                 

在這種情況下, n = 1 ,因為您只想添加一個字符。

, 要么

iterator insert (iterator p, char c);

其中p = hexNum.begin()

結帳http://www.cplusplus.com/reference/string/string/insert/

暫無
暫無

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

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