文件模式在 Turbo C++ 中不起作用
File modes are not working in turbo c++
我尝试使用像 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++ 是一个旧的编译器?如果是这样,我如何将内容附加到文件末尾?
替换为:
ios::binary||ios::app
有了这个:
ios::binary | ios::app
要组合的操作使用 |
(按位 or
)而不是 ||
(逻辑 or
)绑定在一起。
我尝试使用像 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++ 是一个旧的编译器?如果是这样,我如何将内容附加到文件末尾?
替换为:
ios::binary||ios::app
有了这个:
ios::binary | ios::app
要组合的操作使用 |
(按位 or
)而不是 ||
(逻辑 or
)绑定在一起。