如何在每次运行程序时写入文件的下一行?

时间:2018-07-06 13:42:33

标签: python c++ ofstream

我有一个运行C ++程序的python脚本。每次调用后,我想向文件的下一行写一些内容。我可以只写到文件的第一行。为了在不影响前几行的情况下写下一行该怎么办?预先感谢。

C ++方面:my.cpp 将x,y,z作为输入。

char calc(int x,int y,int z)
{
    if(x+y+z<=10) return '0';
    return '1';
}

std::ofstream myfile;
myfile.open("file.txt");
myfile << calc(x,y,z) << std::endl;
myfile.close();

Python方面:

if __name__ == "__main__":
    os.system("make my")
    subprocess.check_output(['./my', x, y, z])

2 个答案:

答案 0 :(得分:2)

如果我正确理解了您的问题,则可能希望将其他选项传递给std::ofstream::open

myfile.open("file.txt", std::ios_base::app);

这会将您写入的所有内容附加到该文件。在python中,您可以像这样删除文件

import os

os.remove("file.txt")

这将导致编译后的可执行文件追加到新创建的文件中。

答案 1 :(得分:1)

您只需要打开即可进行添加:

std::ofstream myfile;
myfile.open("file.txt", std::ios_base::out | std::ios_base::app);