我想弄明白这一点,它现在已经很久了。fstream .open()Win32
当我键入:
inFile.open("C:\Users\Mark\Desktop\text.txt", ios::in | ios:: binary);
它工作得很好。 但是当我做这样的事情。
string garbage = "\\";
srcLoc = ofn.lpstrFile; // this is: C:\Users\Mark\Desktop\text.txt
// This for loop inserts "\\"
for(int i = 0; i < srcLoc.length(); i++)
{
switch(srcLoc[i])
{
case '\\':
srcLoc.insert(i, garbage);
i++;
break;
}
}
// Now string srcLoc looks like: C:\\Users\Mark\\Desktop\\text.txt
inFile.open(srcLoc.c_str(), ios::in | ios:: binary);
// But it wont work
if(inFile)
{
while(!inFile.eof())
{
getline(inFile, tekst);
SendMessage(hTextBox, EM_REPLACESEL, 0, (LPARAM)tekst.c_str());
SendMessage(hTextBox, EM_REPLACESEL, 0, (LPARAM)"\r\n");
}
}
else
{
MessageBox(0, srcLoc.c_str(), "Could not load", MB_ICONWARNING | MB_OK);
}
inFile.close();
我所得到的消息框“无法加载”的工作至少:)任何人都知道我缺少什么?
你应该只需要在字符串中加双反斜杠,而不是已经正常的变量。 – 2012-03-28 18:34:36
当您在文字字符串中使用'/'编码文件路径时,它也可以在Windows上运行,然后您不需要转义所有反斜杠。 – Praetorian 2012-03-28 18:58:44