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

How can I write to next line of a file in each run of a program?

我有一个运行我的 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])

如果我对你的问题的理解正确,你可能希望将附加选项传递给 std::ofstream::open:

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

这会将您写入的任何内容附加到该文件。从python开始,你可以这样删除文件

import os

os.remove("file.txt")

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

你只需要打开追加:

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