fstream.open()不附加到现有文件

时间:2015-01-05 13:57:16

标签: c++ file-io

这是我的主要功能:

void main()

{
    Student s1 = Student(12, "Ali");
    Student s2 = Student(1, "Hassan");
    Student s3 = Student(8, "Bilal");

    s1.WriteFile();
    s2.WriteFile();
    s3.WriteFile();
}

而WriteFile()函数是:

void WriteFile()

    {
        fstream fileWriter, fileReader;

    string string_line;

    fileWriter.open("D:\A111.txt");

    while (!std::getline(fileReader, string_line).eof())
    {

    }

    cout << GetRoll_No() << " , " << GetName() << endl;

    fileWriter << GetRoll_No() << " , " << GetName() << endl;

    fileWriter.close();
    fileReader.close();
}

每当我打电话给它时,它只会显示我在A111.txt中的跟随

8,Bilal

那么为什么它不会在现有文件的末尾附加它。请注意,文件阅读器仅在稍后尝试解决方案时添加,它在没有eof()的情况下也会出现相同的错误

2 个答案:

答案 0 :(得分:1)

如果要追加:{/ p>,则应使用open方法

fs.open ("test.txt", std::fstream::out | std::fstream::app);

请注意:std::fstream::app

答案 1 :(得分:1)

你忘了将mode参数传递给open()函数。你走在正确的轨道上,只需做一点改变:

 fileWriter.open("D:\A111.txt",ios::app);