gpt4 book ai didi

c++ - 对于循环不读取ifstream

转载 作者:行者123 更新时间:2023-12-01 14:52:39 24 4
gpt4 key购买 nike

我正在尝试读取一个文件夹中的多个文件,以便可以解析它们的数据。
我首先尝试使用其中包含所有文件名的文本文档来填充列表,然后基于该字符串 vector ,连续调用ifstream以便读取每个文件并处理单词数据。

我遇到的问题是,ifstream无法打开除列表中间的一个文件以外的所有文件?
Heres the output, its failing to read the dbfiles but they all have the right names?

这些文件的大小不超过8GB,因此应该可以处理,但不是吗?
也许文件路径有问题?

 std::ifstream dbfiles(argv[1]);
if (!dbfiles)
{
std::cerr << "Failed to open database " << argv[1] << " for reading." << std::endl;
}


std::string word;
std::vector<std::string> dbfile_names;
std::string file_name;

while (getline(dbfiles, file_name))
{ //reading in the file names
dbfile_names.push_back(file_name);
}//populate list of dbs

dbfiles.close();

for (unsigned int j = 0; j < dbfile_names.size(); j++)
{ //for every single file

std::ifstream dbfile(dbfile_names[j].c_str());
if (!dbfile)
{
std::cout << "Failed to open database file" << dbfile_names[j] << " for reading. READ FAILURE" << std::endl;
}else{
std::cout << "currently reading " << dbfile_names[j] << std::endl;
}

while (dbfile >> word)
{
//do stuff with the segments of data
//here I gather the data word by word and process it
}
dbfile.close();
}

最佳答案

我进入调试器,发现由于getline的原因,所有文件名在其后面都有一个/ r。
Getting std :: ifstream to handle LF, CR, and CRLF?上的文章有助于描述问题以及如何轻松解决它。

我的文件现在正在读取

关于c++ - 对于循环不读取ifstream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61980219/

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