我尝试使用ios :: app和ios :: ate等文件模式不起作用。 每次我写入二进制文件时,内容都会被新内容替换。我甚至尝试使用seekp(ios :: end)而不是追加模式,它仍然不添加内容而只是替换它。 这是我输入的代码:
#include<fstream.h>
//included other required header files
struct test
{char que[100];
char ans[20];
};
int main()
{
test s ;
ofstream out("test.dat",ios::binary||ios::app);
strcpy(s.que,"abcd");
strcpy(s.ans,"agg");
out.write((char*)&s,sizeof(s));
return 0;
}
我没有意识到出了什么问题。我想知道是不是因为turbo c ++是一个旧的编译器?如果是这样,我如何将内容附加到文件的末尾?
答案 0 :(得分:2)
替换它:
ios::binary||ios::app
有了这个:
ios::binary | ios::app
要合并的操作使用|
(按位or
)而不是||
(逻辑or
)捆绑在一起。