我有一个文本文件,其中只有一行存储代码中使用的变量(类型为double)的内存地址。
温度文本内容:0x7f3c00844c00
我想读取此行并解引用它,以获取存储在该地址的双精度值(即0x 7 f3 c 00844 c 00)
我是这么试的:
std::fstream temp;
temp.open("temp.txt");
string address;
getline(temp, address);
temp.close();
std::cout << *strtoul(address, NULL, 16) << std::endl;
这不起作用--〉“无法将std::string转换为常量char *”
任何帮助非常感谢!
1条答案
按热度按时间ggazkfy81#
您对
strtoul()
的调用是错误的,原因有三:const char*
字符串作为输入,而不是一个std::string
对象。因此您看到了编译器错误。使用std::string::c_str()
方法或std::stoul()
函数来解决这个问题。std::strtoull()
。试试这个:
也就是说,考虑使用
operator>>
代替,因为它有一个重载阅读指针,例如: