见鬼了,CString.Format 居然出错
Format("%s,%f,%d,....",...)
以前这段代码运行的非常正常,但昨天也不知道改动了什么,就出错了。
我仔细的试验了一下,如果使用 %f(即浮点数)的个数超过或者等于3个的时候就抱错,其他的格式%d,%s无论多少个都不出错。
比如
Format("%d,%d,%d,%s,%f,%f,%s",1,1,1,"LKD",2,1.3,"hello");
这段代码用了2个%f,不出错。
但如果改成
Format("%d,%d,%d,%s,%f,%f,%f",1,1,1,"LKD",2,1.3,2.3);
这段代码用了3个%f,然后就抱错了。错误的内容似乎是CString的内存没法分配(太大了)。
虽然可以使用折中的方法解决,比如先把一个浮点数变成CString,但这样比较烦,而且程序的可读性也变差,还有原因没找到不踏实?
知道原因的进来说说