gpt4 book ai didi

c++ - fstream .open() Win32

转载 作者:行者123 更新时间:2023-11-30 00:38:48 24 4
gpt4 key购买 nike

我正试图弄清楚这个问题,它困扰了我很长时间。

当我输入时:

inFile.open("C:\Users\Mark\Desktop\text.txt", ios::in | ios::binary);

它工作得很好。但是当我做这样的事情时。


字符串垃圾 = "\\";



 srcLoc = ofn.lpstrFile;//这是:C:\Users\Mark\Desktop\text.txt

//这个 for 循环插入 "\\"
for(int i = 0; i < srcLoc.length(); i++)
{
开关(srcLoc [i])
{
案件 '\\':
srcLoc.insert(i, 垃圾);
我++;
休息;
}
}
//现在字符串 srcLoc 看起来像:C:\\Users\Mark\\Desktop\\text.txt
inFile.open(srcLoc.c_str(), ios::in | ios::binary);
//但它不会工作

如果(在文件中)
{
while(!inFile.eof())
{
getline(inFile, tekst);
SendMessage(hTextBox, EM_REPLACESEL, 0, (LPARAM)tekst.c_str());
SendMessage(hTextBox, EM_REPLACESEL, 0, (LPARAM)"\r\n");
}
}
别的
{
MessageBox(0, srcLoc.c_str(), “无法加载”, MB_ICONWARNING | MB_OK);
}
inFile.close();

我得到的是 MessageBox“无法加载”至少工作 :) 有人知道我错过了什么吗?

最佳答案

在源代码中的字符串中使用反斜杠时,需要将它们加倍。编译器会将源代码中的每个双反斜杠转换为程序使用的字符串中的单个源代码。当您读取运行时传入的字符串时,您不需要需要加倍反斜杠。

关于c++ - fstream .open() Win32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9913558/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com