我们之前使用的ifstream可以创建一个输入程序的对象,ofstream可以创建一个输出程序的对象。而fstream可以创建既能输入又能输出的文件对象。也就是说,如果我们有一个对象既要进行输入,又要进行输出,那么fstream对象是很方便的。
fstream对象在创建时必须指定文件模式。详细的文件模式如下:
模式 | 描述 |
ios::in | 输入 |
ios::out | 输出(覆盖源文件) |
ios::app | 所有数据追加在末尾(在源文件末尾追加内容) |
ios::ate | 打开一个输出文件并移动到文件末尾。数据可以写入文件的任何位置 |
ios::trunc | 如果文件已存在,则丢弃文件内容(ios::out的缺省方式) |
ios::binary | 以二进制格式输入输出(用于图片,视频,可执行文件等) |
使用符号“|”可以组合多个模式,比如:
stream.open("city.txt", ios::out | ios::app);
//创建文件city.txt的fstream对象
//模式为追加输出
下面举个例子:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream stream;
stream.open("city.txt", ios::out);
stream << "Beijing" << endl << "Shanghai" << endl << "Guangdong" << endl << "Shenzhen" << endl;
stream.close();
stream.open("city.txt", ios::out | ios::app);
int loop;
cout << "城市的个数:" << endl;
cin >> loop;
string city;
cout << "请输入城市名(以换行区分):" << endl;
cin.get();
getline(cin, city, 'n');
stream << city << endl;
for (int i = 0; i < loop-1; i++){
getline(cin, city, 'n');
stream << city << endl;
}
stream.close();
stream.open("city.txt", ios::in);
cout << "n文件内所有的城市为:" << endl;
while(!stream.eof()){
stream >> city;
cout << city << " ";
}
cout << endl;
stream.close();
return 0;
}
运行示例:
原文链接: https://www.cnblogs.com/bwjblogs/p/12905773.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/197569
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!