【问题标题】:C++: Write to an existing file? [duplicate]C++:写入现有文件? [复制]
【发布时间】:2010-11-15 16:31:36
【问题描述】:

在 C++ 中,我需要写入现有文件并将之前的内容保留在那里。

这就是我所做的:

std::ofstream logging;

logging.open(FILENAME);

logging << "HELLO\n";

logging.close();

但是我之前的文本被覆盖(消失了)。我做错了什么?

提前致谢。

【问题讨论】:

    标签: c++


    【解决方案1】:
    logging.open(FILENAME, std::ios_base::app); 
    

    【讨论】:

    • logging.open(文件名,std::ios::append|std::ate);也将始终添加到结尾
    【解决方案2】:

    您必须以附加模式打开文件:

    logging.open(FILENAME, std::ios::app);
    

    【讨论】:

      【解决方案3】:

      默认情况下,文件的“opening mode”会被覆盖。尝试以追加模式打开文件

      open的第二个参数是一个枚举位标志。您应该检查的两个选项是:

      • app - 在每次写入前寻找文件末尾
      • ate - 打开后查找文件末尾

        logging.open(FILENAME, std::ios::app|std::ate);

      【讨论】:

        【解决方案4】:

        你试试? 类似的东西

        myFile.open( "file.txt", ios::out | ios::app );
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-09-19
          • 2014-01-18
          • 2013-10-02
          • 1970-01-01
          • 2016-04-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多