fstream.open() 不附加到现有文件
fstream.open() not appending to existing file
这是我的主要功能:
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 , 比拉尔
那么为什么不将它追加到现有文件的末尾。请注意,filereader 仅在稍后尝试解决方案时才添加,它在没有 eof() 的情况下也会给出相同的错误
open
方法应该这样使用,如果你想追加:
fs.open ("test.txt", std::fstream::out | std::fstream::app);
注意:std::fstream::app
你只是忘了将模式参数传递给 open() 函数。你在正确的轨道上,只需做这个小小的改变:
fileWriter.open("D:\A111.txt",ios::app);
这是我的主要功能:
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 , 比拉尔
那么为什么不将它追加到现有文件的末尾。请注意,filereader 仅在稍后尝试解决方案时才添加,它在没有 eof() 的情况下也会给出相同的错误
open
方法应该这样使用,如果你想追加:
fs.open ("test.txt", std::fstream::out | std::fstream::app);
注意:std::fstream::app
你只是忘了将模式参数传递给 open() 函数。你在正确的轨道上,只需做这个小小的改变:
fileWriter.open("D:\A111.txt",ios::app);