Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ std::ofstream:可以打开文件但不能追加_C++_Linux - Fatal编程技术网

C++ std::ofstream:可以打开文件但不能追加

C++ std::ofstream:可以打开文件但不能追加,c++,linux,C++,Linux,我的程序以增量方式打开并写入多个文件,但在某些看似任意的点上,将文本附加到已存在的文件失败。下面是一段令人不快的代码: bool append_to_file(std::string const &Path, std::string const &What) { std::ofstream FStream(Path, std::ios::out | std::ios::app); if (!FStream) { std::cerr << "O

我的程序以增量方式打开并写入多个文件,但在某些看似任意的点上,将文本附加到已存在的文件失败。下面是一段令人不快的代码:

bool append_to_file(std::string const &Path, std::string const &What) {
  std::ofstream FStream(Path, std::ios::out | std::ios::app);
  if (!FStream) {
    std::cerr << "OPEN FAILED" << std::endl;
    return false;
  }

  FStream << What;

  if (!FStream) {
    std::cerr << "WRITE FAILED" << std::endl;
    return false;
  }

  return true;
}
bool-append\u-to\u文件(std::string-const&Path,std::string-const&What){
流FStream的std::of(路径,std::ios::out | std::ios::app);
如果(!FStream){
这对我来说很有效:

#include <string>
#include <fstream>
#include <iostream>
int append_to_file(std::string const& Path, std::string const& What) {
    std::fstream FStream(Path,std::ios_base::app);
    if (!FStream) {
        std::cerr << "OPEN FAILED" << std::endl;
        return 1;
    }

    FStream << What;

    if (!FStream) {
        std::cerr << "WRITE FAILED" << std::endl;
        return 2;
    }

    return 0;
}
int main() {
    int res = append_to_file("Tester.txt", "HIIII");
    std::cout << res;
}
#包括
#包括
#包括
int append_到_文件(std::string const&Path,std::string const&What){
std::fstream fstream(路径,std::ios_base::app);
如果(!FStream){

std::cerr您的函数对我来说非常有效,无论文件是否存在。不要写入
WRITE FAILED
,而是执行
std::cerr您流中的错误代码是什么?@Barmar--no.
errno
必须是宏。[errno]/1.@TEDLYNGOM:Thread ID没有改变。我认为除了clang或libstdc++的一些问题之外,没有一个合理的解释。你能把它出现的确切的“字符串形式”包括进来吗?可能是因为转义引号有些奇怪。