永发信息网

C++如何向一个文件中添加字符而不覆盖原文件

答案:2  悬赏:40  手机版
解决时间 2021-04-03 21:33
C++如何向一个文件中添加字符而不覆盖原文件
最佳答案
ifstream input_file;
ofstream output_file;
char ch;
input_file.open("D:/Cruse/编程/第十一章 流类库/写入字符.txt",ios::app); //加上这句就可以了
while(input_file.get(ch)) cout<cout<input_file.close();
全部回答
在你的open函数中改变打开的参数就可以了,具体的看下面对open函数的解释。
在fstream类中,有一个成员函数open(),就是用来打开文件的,其原型是:
void open(const char* filename,int mode,int access);
参数:
filename: 要打开的文件名
mode: 要打开文件的方式
access: 打开文件的属性
打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下:
ios::app: 以追加的方式打开文件
ios::ate: 文件打开后定位到文件尾,ios:app就包含有此属性
ios::binary: 以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文
ios::in: 文件以输入方式打开
ios::out: 文件以输出方式打开
ios::nocreate: 不建立文件,所以文件不存在时打开失败
ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败
ios::trunc: 如果文件存在,把文件长度设为0
可以用“或”把以上属性连接起来,如ios::out|ios::binary
打开文件的属性取值是:
0:普通文件,打开访问
1:只读文件
2:隐含文件
4:系统文件
可以用“或”或者“+”把以上属性连接起来 ,如3或1|2就是以只读和隐含属性打开文件。
例如:以二进制输入方式打开文件c:config.sys
fstream file1;
file1.open("c:\config.sys",ios::binary|ios::in,0);
如果open函数只有文件名一个参数,则是以读/写普通文件打开,即:
file1.open("c:\config.sys");<=>file1.open("c:\config.sys",ios::in|ios::out,0);
另外,fstream还有和open()一样的构造函数,对于上例,在定义的时侯就可以打开文件了:
fstream file1("c:\config.sys");
特别提出的是,fstream有两个子类:ifstream(input file stream)和ofstream(outpu file stream),ifstream默认以输入方式打开文件,而ofstream默认以输出方式打开文件。
ifstream file2("c:\pdos.def");//以输入方式打开文件
ofstream file3("c:\x.123");//以输出方式打开文件
所以,在实际应用中,根据需要的不同,选择不同的类来定义:如果想以输入方式打开,就用ifstream来定义;如果想以输出方式打开,就用ofstream来定义;如果想以输入/输出方式来打开,就用fstream来定义。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
四大银行哪个信用卡好 四大银行哪家信用卡好
外地的70岁以上的老人可以免票吗
二十三点四五?写作________???三万零九点零零
求学霸~(°ω°)~ヾ(*´∀`*)ʎ
小米5MIUI9开发版怎么开启性能模式
现代酷派油表数字没了
我爱上了我的大姨子。谁能告诉我应该怎么办?
抬头〆拥抱你的疲惫情侣网名
gps可以实现在大型室内导航吗
2018年将提高个人所得税的起征点吗?
东方红'一拖刹车油管漏油怎拆
我家小萨流鼻涕打喷嚏是怎么了?其他都正常
中国最好的小分子肽,你知道多少
漂亮的衣服等等在穿,好玩的地方要准备好了再
青岛到沭阳快递大约多会到
推荐资讯
2010乒乓球世青赛女团决赛
新兴玩具厂有甲,乙两个车间,甲车间与乙车间
6(p+q)^2-12(p+q)
加湿器对人有害吗
我就想问想学中文系有哪个大学好
反应A+B→C的反应速率方程式为:v=kc(A)c(B)
康熙晚年时期的皇子们大都下场很惨,为什么唯
凯越19555轮胎可以换成19560的吗
请问建筑里面什么叫檐板?
请教,什么是不定副词?
下列词语中划线字的注音全部正确的一项是B3分
幼儿园布置植物角,最适合摆什么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?