[英]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
,它使用int
和char
作為參數。
您可以使用此重載版本:
string& insert (size_t pos, size_t n, char c);
在這種情況下, n = 1
,因為您只想添加一個字符。
, 要么
iterator insert (iterator p, char c);
其中p = hexNum.begin()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.