C ++将字符串添加到现有文本文件

时间:2014-10-01 19:39:56

标签: c++ text-files memory-address

下面的代码生成一个标有日期的文本文件,并将命令提示符上输入的内容写入.txt。问题是,一旦我第二次运行代码,它就会删除先前写入的内容并写入新输入的内容。如果文本文件已经存在,我想保留以前写的内容,跳下两行并添加新材料。有什么想法吗?

#include <iostream>
#include <fstream>
#include <string>
#include <ctime>

void main()
{
    time_t now = time(0);
    tm *ltm = localtime(&now);
    int day = ltm->tm_mday;
    int month = 1 + ltm->tm_mon;
    int year = 1900 + ltm->tm_year;
    std::string d = std::to_string(day);
    std::string m = std::to_string(month);
    std::string y = std::to_string(year);
    std::string info;
    std::getline (std::cin, info); 
    std::ofstream notes(m + d + y + ".txt", std::ios::out);
    if (notes.is_open())
    {
        notes << info;
    }
    else
    {
        std::cout << "couldn't make file";
    }
}

1 个答案:

答案 0 :(得分:2)

更改您的

std::ofstream notes(m + d + y + ".txt", std::ios::out);

有关

std::ofstream notes(m + d + y + ".txt", std::ios::app);

这样,您将在文件末尾附加新行

有关写入模式的更多信息:Check this link