使用MFC制作简单界面时,常会加载本地文件路径,但是获取的路径格式是CString,使用流文件进行读取时需要char或String型的路径,需进行CString到char/String类型转化。
正确的处理办法是:使用W2A函数,使用该函数需要加载USES_CONVERSION,具体用法如下:
int vData;
string tmpData;
CString m_dataPath;
vector<int> valueSet;
const char* dataPathStr;
//使用W2A函数,需要加转换类型USES_CONVERSION
USES_CONVERSION;
m_dataPath = dlg.GetPathName();
dataPathStr = W2A(m_dataPath);
std::ifstream targetFile(dataPathStr);
while (targetFile >> tmpData) //依次读取txt中的数据
{
vData = (int)atof(tmpData.c_str());
valueSet.push_back(vData); //压入向量中
}