所以我已经困扰了一段时间了,我不知道为什么它不起作用。我可能已经忘记了这件事,但确实很愚蠢,但是从项目中的文件读取时遇到了很大的问题。
我正在尝试使用“ res / dir / file.txt”作为文件路径,但无法正常工作。我也尝试过将文件移到“ file.txt”文件路径,但什么也没有。我一直在整个项目中移动文件,以查看是否可以从某个地方访问该文件,但没有成功。工作目录为$(ProjectDir)
streamFile("res/dir/file.txt");
我的函数看起来像这样,我无法使用(getline(stream,line))进入while循环,这是该问题的主要指标:
void streamFile(const std::string& filepath)
{
std::ifstream stream(filepath);
std::string line;
while (getline(stream, line))
{
if (line.find("#Example") != std::string::npos)
{
}
else
{
}
}
return;
}
我感到atm真的很愚蠢,因为我知道我以前做过,而且从未遇到过类似的问题。我想念什么?
答案 0 :(得分:0)
您的代码运行正常。我是这样尝试的:
#include <iostream>
#include <fstream>
int main(void)
{
std::ifstream stream("./res/dir/test.txt");
std::cout << (stream.is_open() ? "file successfully opened" : "file could not be opened") << std::endl;
std::string line;
while (getline(stream, line))
{
std::cout << "line read: " << line << std::endl;
if (line.find("my") != std::string::npos)
{
std::cout << "\t ... found magic word" << std::endl;
}
else
{
std::cout << "\t ... no magic word in this line" << std::endl;
}
}
}
./ res / dir / test.txt
hello world
my name is john doe
how are you?
输出符合预期:
file successfully opened
line read: hello world
... no magic word in this line
line read: my name is john doe
... found magic word
line read: how are you?
... no magic word in this line