文件流无法打开

Filestreams won't open

本文关键字:文件      更新时间:2023-10-16

我有以下c++代码作为一个更大的程序的一部分:

/* Open the output streams */
    std::ofstream outputFile;
    outputFile.open(outputName);
    std::ofstream outputFile1;
    outputFile1.open(outputName1);
    std::ofstream outputFile2;
    outputFile2.open(outputName2);
    std::cout <<  outputFile.is_open() << " " << outputFile1.is_open() << " " << outputFile2.is_open() << std::endl;
if (inputFile.is_open() && outputFile.is_open() && outputFile1.is_open() && 
outputFile2.is_open())
...

它应该打开几个输出文件流,然后-如果它们都打开-做一系列的操作写入每个文件流。然而,程序提前终止,因为流从未打开:

0 0 0
Filestream or output streams could not open, ending program!

变量outputName是std::strings,我认为在c++ 11中是允许的(我在我的OpenBlocks编译器选项中为c++ 11启用了-std标志)。

我不知道为什么流不打开。

谢谢。

文件流可能由于多种原因而无法打开,例如路径无效,访问被拒绝,或者文件已经打开以便在其他程序中写入。

这些错误是与操作系统相关的,因此没有标准的方法来报告哪个错误发生了。但是,您可能会在此问题的答案中获得一个错误代码。

如果你使用的是Windows,请小心;如果报告错误码5(访问被拒绝)的各种原因,与权限无关。