Cookbook系列之Cpp:数据流与文件
问题01:如何垂直排列文本输出,使其左对齐或右对齐
成都创新互联公司自2013年创立以来,是专业互联网技术服务公司,拥有项目成都网站设计、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元固始做网站,已为上家服务,为固始各地企业和个人服务,联系电话:18980820575
使用标准的流操作符来设置字段的宽度和对齐方式。一个操作符就是操作在流上的函数,通过操作符<<将这些操作函数应用到流上。
- #include
- #include
- using namespace std;
- int main()
- {
- ios_base::fmtflags flags = cout.flags();
- int width = 10;
- cout << left
- << setw(width) << "Jim"
- << setw(width) << "Tom"
- << setw(width) << "Bill" << endl;
- cout << right
- << setfill('.')
- << setw(width) << "Jim"
- << setw(width) << "Tom"
- << setw(width) << "Bill" << endl;
- return 0;
- }
- // output
- Jim Tom Bill
- .......Jim.......Tom......Bill
问题02:如何格式化输出浮点数
使用
- #include
- #include
- #include
- using namespace std;
- int main()
- {
- ios_base::fmtflags flags = cout.flags();
- double pi = 3.14159265;
- cout << setprecision(5) << pi << endl;
- cout << fixed << showpos << setprecision(3) << pi << endl;
- cout << scientific << noshowpos << pi << endl;
- cout.flags(flags);
- return 0;
- }
- // output
- 3.1416
- +3.142
- 3.142e+00
问题03:如何复制文件
使用
>> ios::app:以追加的方式打开文件
>> ios::ate:文件打开后定位到文件尾,ios:app就包含有此属性
>> ios::binary:以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文
>> ios::in:文件以输入方式打开
>> ios::out:文件以输出方式打开
>> ios::nocreate:不建立文件,所以文件不存在时打开失败
>> ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败
>> ios::trunc:如果文件存在,把文件长度设为0
- #include
- using namespace std;
- int main()
- {
- fstream in("/root/.bashrc", ios::binary | ios::in);
- fstream out("/tmp/bashrc", ios::binary | ios::out);
- out << in.rdbuf();
- in.close();
- out.close();
- return 0;
- }
问题04:如何删除或重命名文件,并且这些操作是可移植的
使用定义在
问题05:如何创建临时文件
有两种办法可以用来创建一个临时文件。声明在
如果你需要一个具名的临时文件,那么tmpnam可以满足你的要求。tmpnam事实上不会产生一个临时文件,它只是创建一个唯一的文件名,你可以用这个文件名来打开一个文件。tmpnam带一个char*类型的参数并返回一个char*类型的值。你可以使用一个指向一个字符缓存的指针来传递它,但必须至少有L_tmpnam内存,tmpnam将复制这个临时的名字,并且返回一个指向这个缓存的指针。如果你传递一个NULL值的话,tmpfile将返回一个指向一个包含文件名的静态缓存指针,也就意味着随后的tmpnam调用将会改写它。
网页题目:Cookbook系列之Cpp:数据流与文件
文章源于:http://pwwzsj.com/article/psgipp.html