Mar*_*rko 1 c++ winapi ifstream getopenfilename
我试图弄清楚这一点,它现在困扰我很久了.
当我输入:
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();
Run Code Online (Sandbox Code Playgroud)
inFile.open("C:\Users\Mark\Desktop\text.txt", ios::in | ios:: binary);
我得到的是MessageBox"无法加载"至少工作:)任何人都知道我错过了什么?
当您在源代码中的字符串中使用反斜杠时,需要加倍反斜杠.编译器会将源代码中的每个双反斜杠转换为程序使用的字符串中的单个源代码.当你阅读在运行时进来的字符串,你就不会需要加倍反引号.
归档时间: |
|
查看次数: |
1140 次 |
最近记录: |