将ini资料中的一串数字读取到cstring变量中 在使用replace函数替换失效。求解释
将ini文件中的一串数字读取到cstring变量中 在使用replace函数替换失效。。。求解释
我将一个ini配置文件中的数据读到CString变量中,ini文件中值是这样表示:10,11,12,13,14
我将这一串读到CString变量中,再使用replace函数替换“,”,结果返回值是0,
在CString变量中值也确实是:10,11,12,13,14
我再直接将10,11,12,13,14赋值给一个变量,再替换,就成功了。。。。
这个是怎么一回事呢。
------解决方案--------------------
tmp.GetBuffer(MAX_PATH-1);
获得后tmp.ReleaseBuffer,否则内存泄漏
------解决方案--------------------
可能是字符编码的问题,从文件读入的aa|i|kk|ssc 字符串的字符编码方式和你源代码的编码方式不同,我估计你的ini文件的编码方式是ansi,而源代码的编码方式是unicode的,造成了此问题。
排除这个问题,你可以按字节比较tmp和tmp1是否相同。
------解决方案--------------------
strtok
我将一个ini配置文件中的数据读到CString变量中,ini文件中值是这样表示:10,11,12,13,14
我将这一串读到CString变量中,再使用replace函数替换“,”,结果返回值是0,
在CString变量中值也确实是:10,11,12,13,14
我再直接将10,11,12,13,14赋值给一个变量,再替换,就成功了。。。。
这个是怎么一回事呢。
------解决方案--------------------
tmp.GetBuffer(MAX_PATH-1);
获得后tmp.ReleaseBuffer,否则内存泄漏
------解决方案--------------------
可能是字符编码的问题,从文件读入的aa|i|kk|ssc 字符串的字符编码方式和你源代码的编码方式不同,我估计你的ini文件的编码方式是ansi,而源代码的编码方式是unicode的,造成了此问题。
排除这个问题,你可以按字节比较tmp和tmp1是否相同。
------解决方案--------------------
strtok