c++ - 无法在循环 C++ 中打开文件

标签 c++ file loops

我有一个具有以下代码的 C++ 应用程序:

for (int i = 0; i < ALL_EPID_CERTS_LENGTH; i++)
            {
            std::ifstream file(; 
            file.open(path.append(ALL_EPID_CERTS_1_0[i]), std::ios::in | std::ios::binary); 
            if(file.is_open()) 
            {
                // get the length of the file 
                file.seekg(0, ios::end); 
                size_t fileSize = file.tellg(); 
                file.seekg(0, ios::beg);
                // create a vector to hold all the bytes in the file
                vector<byte> data(fileSize, 0);
                // read the file
                file.read(reinterpret_cast<char*>(&data[0]), fileSize);             
                byte *tempCerts = new byte[data.size()+1];
                memset(tempCerts,0,fileSize+1);
                std::copy(data.begin(), data.begin()+(data.size()), tempCerts);
                // !!!!check if NULL and place for NULL are needed
                for (int j = 0; j < data.size(); j++)
                {
                    list.push_back(tempCerts[j]);
                }
                file.close();
            }
            }

在第一次迭代中,循环执行预期的操作,但由于第二次迭代 - file.is_open() 返回 false。 所有文件都存在。 你能给我解释一下哪里出了问题吗???

最佳答案

你执行 path.append - path 是什么?您希望它在第一次迭代后是什么 - ALL_EPID_CERTS_1_0[1] 附加到 ALL_EPID_CERTS_1_0[0] 可以吗?

关于c++ - 无法在循环 C++ 中打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15553609/

相关文章:

c++ - 从同一类中的另一个成员对象访问成员对象

javascript - 无法弄清楚如何使用 jQuery 将 HTML 片段直接插入到 HTML 文档中

java - 删除指定文件

loops - 迭代 Lua Torch 中的目录

javascript - 一旦在数组中找到匹配项,如何停止JavaScript循环

c++ - 在库中处理 Posix 信号

c++ - 检查标准输入是否为空

python - 重命名文件,Python/Jython

ios - 从循环更新 View

c++ - 我如何在 C++11 中实现类似 "interrupted exception"行为的 Java