将void*hex转换为十进制int
convert void* hex to decimal int
你好,我需要你的帮助将void*(十六进制数)转换为十进制数。我在代码中使用sqlite3,回调函数给了我一个&包含行数的数据。问题是:我需要保存&data(十六进制数)为int。也许还有另一种方法可以做到这一点,但我尝试将&数据十六进制到十进制整数,问题是转换void*。我试图将void*转换为int,但为了获得指针,出现了运行时间问题。如果你帮我转换,我会很高兴的。谢谢
一些代码-
void* data = nullptr;
rc = sqlite3_exec(db, str.data(), callback, &data, &zErrMsg);
int id = 0;
if (data != nullptr)
{
int dataa = *((int *)data); // run time error
istringstream(dataa) >> std::hex >> id; \ istringstream can't convert void* // NEED CHANGE
}
return id;
回调函数-
if (argc == 0) {
user_exist = false; return 0;
}
else {
user_exist = true;
if (notUsed != NULL) {
cout << argv[0] << endl;
((int)notUsed) = atoi(argv[0]);
}
}
return 0;
sqlite3_exec()
才有用。在实践中,您通常应该使用sqlite3_prepare_v2()/sqlite3_step()/ssqlite3_finalize()函数来读取数据:
sqlite3_stmt *stmt;
int rc = sqlite3_prepare_v2(db, "SELECT ...", -1, &stmt, NULL);
if (rc != SQLITE_OK) {
print("error: ", sqlite3_errmsg(db));
return -1;
}
rc = sqlite3_step(stmt);
if (rc != SQLITE_ROW && rc != SQLITE_DONE) {
print("error: ", sqlite3_errmsg(db));
} else {
user_exist = rc == SQLITE_ROW;
}
sqlite3_finalize(stmt);
(对于大多数其他查询,只要得到SQLITE_ROW
,就可以调用sqlite3_column_*()函数来读取实际值。)
相关文章:
- 为什么在全局范围内使用"extern int a"似乎不行?
- int(c) 和 c-'0' 之间的区别。C++
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 是否可以从int转换为enum类类型
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- 'short int'持有的值溢出,但"自动"不会溢出?
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 调用'begin(int [n])'没有匹配函数
- 如何在C++中将二进制编码十进制转换为 int
- 为什么如果(!(cin >> int)) 在第一次迭代中接受十进制数,但不接受其他十进制数?
- 有没有什么方法可以在不丢失十进制值的情况下将浮点值转换为int值
- 为什么 int -> 十六进制/oct/bin 的转换在输出中打印为纯十进制值?
- 将 int(实际上是十进制)转换为字符串(1234 到 "123.4")
- C++:将 UTF16 字符的十六进制表示转换为十进制(如 python 的 int(hex_data, 16))
- 返回十进制值的Long int类型函数
- 将void*hex转换为十进制int