扫码关注官方订阅号
int a1 = 1; int a2 = 10; char *sqliteInsert = "insert into test123 values("+a1+","+a2+")"; 上面的写法是错误的。问题是c++中有没有类似Java中tostring的用法。
闭关修行中......
char* / const char*
+
std::string
Java
toString
std::to_string
stringstream
c++11:
cpp#include <string> int a1 = 1; int a2 = 10; std::string insertStr = "insert into test123 values(" + std::to_string(a1) + "," + std::to_string(a2) + ")"; char *sqliteInsert = const_cast<char*>(insertStr.c_str());
cpp
#include <string> int a1 = 1; int a2 = 10; std::string insertStr = "insert into test123 values(" + std::to_string(a1) + "," + std::to_string(a2) + ")"; char *sqliteInsert = const_cast<char*>(insertStr.c_str());
c++0x:
cpp#include <sstream> int a1 = 1; int a2 = 10; std::ostringstream oss; oss << "insert into test123 values(" << a1 << "," << a2 << ")"; char *sqliteInsert = const_cast<char*>(oss.str().c_str());
#include <sstream> int a1 = 1; int a2 = 10; std::ostringstream oss; oss << "insert into test123 values(" << a1 << "," << a2 << ")"; char *sqliteInsert = const_cast<char*>(oss.str().c_str());
注意:std::string::c_str() 返回值是 const char *,所以直接将其赋值给 char *,编译器可能会给出 error。安全的方式是对其进行 const_cast .
std::string::c_str()
const char *
char *
const_cast
嗯,你其实是打算问,在C++中怎么把int类型数据转换成string吧?
我觉得最简单的办法,就是用std::stringstream
std::stringstream
#include <sstream> std::stringstream query; query << "insert into test123 values(" << a1 << ", " << a2 << ")"; char *sqliteInsert = query.str().c_str();
更新:我这段代码有问题,query.str().c_str()返回的结果应该进行const_cast,见@pezy 的答案。
query.str().c_str()
难道不是printf ?
Binding Values To Prepared Statements (http://www.sqlite.org/c3ref/bind_blob.html)
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
char* / const char*
类型不支持+
操作符。你应该使用std::string
.Java
中toString
的用法? 有。std::to_string
方法。stringstream
,如 @spacewander 的答案。c++11:
c++0x:
注意:
std::string::c_str()
返回值是const char *
,所以直接将其赋值给char *
,编译器可能会给出 error。安全的方式是对其进行const_cast
.嗯,你其实是打算问,在C++中怎么把int类型数据转换成string吧?
我觉得最简单的办法,就是用
std::stringstream
更新:我这段代码有问题,
query.str().c_str()
返回的结果应该进行const_cast
,见@pezy 的答案。难道不是printf ?
Binding Values To Prepared Statements (http://www.sqlite.org/c3ref/bind_blob.html)