gpt4 book ai didi

c++ - 为什么我的 fstream 不能正确打开?

转载 作者:行者123 更新时间:2023-11-28 00:29:55 26 4
gpt4 key购买 nike

我觉得这是一个愚蠢的问题,但我似乎无法弄清楚为什么我的文件打不开。起初我尝试单独传递文件名,因为它在我的工作目录中,当它不起作用时我提供了整个路径,这也不起作用。我的文件无法在以下代码中打开的原因是什么?这可能是我遗漏的非常简单的事情,我想一双新的眼睛可能会有所帮助。

没有错误代码,因为这是一个运行时错误。当我调试时,我的代码不会越过 if(f.is_open()) 行。我错过了什么吗?我的路径应该是正确的,因为我直接从文件资源管理器复制粘贴了它。

欢迎任何帮助,我们也将不胜感激。

注意:我的 substr 逻辑可能有误,但不要担心那部分代码。

 void QuizKey::readFromFile(string path)
{

fstream f;
f.open(path);

string line;

if(f.is_open())
{
while(getline(f, line))
{
int periodLocation = line.find(".");
int firstPipe = line.find("|");
int secondPipe = line.find("|", firstPipe);
int thirdPipe = line.find("|", secondPipe);

AnswerSet set;
set.answer = line.substr(periodLocation + 1, firstPipe - periodLocation - 1);
set.two = line.substr(firstPipe + 1, secondPipe - firstPipe - 1);
set.three = line.substr(secondPipe + 1, thirdPipe - secondPipe - 1);
set.four = line.substr(thirdPipe + 1, line.length() - thirdPipe - 1);

key.push_back(set);
}
}
}

最佳答案

如果您在 Windows 中并且直接从资源管理器复制和粘贴,那么您可能忘记了对文件路径中的斜线进行转义,它应该是 "c:\\foo\\bar.txt".

此外,open() 不带一个 char*,它需要是 f.open(path.c_str())?

关于c++ - 为什么我的 fstream 不能正确打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23350177/

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