将char转换为int c ++

时间:2013-11-19 06:12:30

标签: c++ char int

我现在正在失去理智,而我正在努力做到这一点。

char* buffer;
sprintf(buffer, "0x%08x", 5);
*(int *)(0x834AF2AC + 0x1a) = ?buffer?;

缓冲区= 0x05000000

我需要在内存中设置它,如果我只设置05它将设置0x00000005

问题要求更好。 如何将INT转换为“0x%08x”格式 所以5变成0x05000000

ANSWERD: 正确答案是*(int *)(0x834AF2AC + 0x1a)= 5<< 24;

3 个答案:

答案 0 :(得分:2)

这样的事情:

#include <iostream> // for std::cout, std::endl
#include <string>   // for std::string, std::stoi
int main()
{

  std::string s{"0x05"};
  int i = std::stoi(s, nullptr, 16); // convert base 16 number in s to int
  std::cout << i << std::endl;

}

答案 1 :(得分:0)

我不确定我是否理解正确,但如果您想将整个string转换为int,那么我建议stringstream

http://www.cplusplus.com/reference/sstream/stringstream/stringstream/

对于十六进制字符串:

#include <string>       // std::string
#include <iostream>     // std::cout
#include <sstream>      // std::stringstream

int main () {

  std::stringstream ss;

  ss << std::hex << 0x05;

  int foo;
  ss >> foo;

  std::cout << "foo: " << foo << '\n';

  return 0;
}

答案 2 :(得分:0)

谷歌的两个结果指向stackoverflow(结果1和2)。

Convert char to int in C and C++

C char* to int conversion