读取文件名中的数字
intnN1=0,nN2=0,nN3=0,nN4=0;
CString s = “14-52-09-765”;
sscanf(s,"%d-%d-%d-%d",&nN1,&nN2,&nN3,&nN4);格式要一样
vc下cstring转换为float
CString str = CString("Almost mad!");
float tempFloat = 0.0;
tempFloat = atof(str);,
但是出现这样的错误
error C2664: 'atof' : cannot convert parameter 1 from 'CString' to 'const char *'
原因:
建议 :
CString str;
float fi;
fi = _tstof(str);
这样无论是不是unicode下,就都可以了
解决方案:
double atof(
const char *str
);
double _wtof(
const wchar_t *str
);
atof是非unicode版本的,所以接受参数为const char *。
_wtof才是unicode下的,所以接受宽字符为参数。
为了统一,可以用_tstof或者_ttof。
非Unicode下,直接用GetBuffer(0)得到的就是单字节字符指针。
Unicode下,将GetBuffer(0)得到的宽字符指针用W2A宏转成单字节字符指针