学习笔记:I/O写操作

如下程序中,声明一个ofstream对象后,便可以使用方法open()将该对象特定文件关联起来:

1
2
ofstream outFile;
outFile.open("carinfo.txt");

程序使用完该文件后,应该将其关闭:

1
outFile.close();

注意,方法close()不需要使用文件名作为参数,这是因为outFile已经同特定的文件关联起来。如果您忘记关闭文件,程序正常终止时将自动关闭它。
outFile可以使用cout可使用的任何方法。他不但能够使用运算符<<,还可以使用各种格式化方法,如setf()和precision()。这些方法只影响调用它们的对象。例如,不同的对象,可以提供不同的值:

1
2
cout.precision(2);	//use s precision of 2 for the display
outFile.precision(4); //use a precision of 4 for file output

需要注意的重点是,创建好ofstream对象(如outFile)后,便可以像使用cout那样使用它。
回到open()方法:
outFile.open(“carinfo.txt”);
在这里,程序运行之前,文件carinfo.txt并不存在。在这种情况下,方法open()将新建一个名为carinfo.txt的文件。如果在此运行该程序,文件carinfo.txt将生成,此情况将如何呢?默认情况下,open()将首先截断该文件,即将其长度截断到零————丢弃其原有的内容,然后将新的输出加到该文件中。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <fstream>

int main()
{
using namespace std;

char automobile[50];
int year;
double a_price;
double d_price;

ofstream outFile;
outFile.open("carinfo.txt");

cout<<"Enter the make and model of automobile:";
cin.getline(automobile, 50);
cout<<"Enter the model year:";
cin>>year;
cout<<"Enter the original asking price:";
cin>>a_price;
d_price = 0.913 * a_price;

cout<<fixed;
cout.precision(2);
cout.setf(ios_base::showpoint);
cout<<"Make and model:"<<automobile<<endl;
cout<<"year:"<<year<<endl;
cout<<"Now asking $"<<d_price<<endl;

outFile<<fixed;
outFile.precision(2);
outFile.setf(ios_base::showpoint);
outFile<<"Make and model:"<<automobile<<endl;
outFile<<"Year:"<<year<<endl;
outFile<<"Was asking $"<<a_price<<endl;
outFile<<"Now asking $"<<d_price<<endl;

outFile.close();
return 0;
}

本文标题:学习笔记:I/O写操作

文章作者:water

发布时间:2018年07月18日 - 14:26:08

最后更新:2018年07月18日 - 14:47:10

原始链接:http://9cat.top/2018/07/18/学习笔记:I-O写操作/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

------ 本文结束------
分享
分享