读书人

C连接mysql数据库取值判断的有关问题

发布时间: 2012-05-28 17:59:54 作者: rapoo

C连接mysql数据库取值判断的问题
C连接mysql数据库 取出数据,在需要进行判断数据库中resrow[0]处的值是否与本地某个double类型是否相等时,无法判断,char *类型的resrow[0]无法转换为等效的double类型,互转也不行,求解 调试信息:

resrow[1] 0x009de3fe "106.043403625488"( 注:数据库中也是double类型)
spa->longitude 106.043403625488
无法使用if语句进行判断
求解。


[解决办法]
mysql 的c api 全部都是使用字符串来传输的(不论数据库中的是什么类型),你要想和数值比较,要先把字符串转换为数值.

可参考以下几种方式:
1) 标准c函数:
atoi() atol() atof()
2) 标准c字符串输入输出函数
float ff;
sscanf(str, "%f",&ff);// str 是mysql返回的字符串
3) 标准c++字符串流
float ff;
std::stringstream ss;
ss << str;//str 是mysql返回的字符串
ss >> ff;

4) 楼下补充...

个人建议: 可以的话,尽量用 (3) ...
[解决办法]
atof

读书人网 >C语言

热点推荐