在C ++中将十进制转换为十六进制的混淆

时间:2016-12-31 05:03:02

标签: 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]

的无效转换

3 个答案:

答案 0 :(得分:2)

您正在尝试使用std::string::insert的重载之一,但它们都不接受int和char:

您的需求之一是接受位置,计数和符号,因此请致电 <div id="container"> <ul id="Unorderedlist" > <li id="ListofContent" class="ul-content"> <div id="divcontent" class="divcontent"> <label id="filenames" class="filenames"></label> </div> </li> </ul> </div>

答案 1 :(得分:1)

如果您考虑使用以下功能:

iterator insert( iterator pos, CharT ch );

你需要使用:

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

答案 2 :(得分:0)

该错误即将发生,因为string::insert没有{{1>} <{1}}作为参数的重载版本。

您可以使用此重载版本:

int

在你的情况下char,因为你只想添加一次角色。

,或

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

其中n = 1

结帐http://www.cplusplus.com/reference/string/string/insert/