困扰了我几天的问题,就一个sprintf就解决了,在此谢谢晨星
我原来的问题是,在vc下根据ID号查询sqlite数据库word字段的信息,但由于sqlite3_exec接口函数中的第二个参数不能有变量char *sql="SELECT word FROM zhcn WHERE id=i";此处i为变量,最后返回一个错误信息。最后sprintf解决了问题。代码如下
for(int i=0;i<=7302;i++)
{
char sql[50];
sprintf(sql,"SELECT word FROM zhcn WHERE id=%d",i);
result = sqlite3_exec( db,sql, LoadMyInfo, NULL, &zErrMsg );
//loadMyInfo是我的回调函数
}
在网上搜了一下发现与sprintf类似的函数还有_sprintf,wsprintf,snprintf前两者是标准的c/c++库,wsprintf是WINDOWS编程设计中的,snprintf是linux下的。sprintf与_sprintf的区别是后者会检测是否溢出。
阅读(568) | 评论(0) | 转发(0) |