程序的输入指的是从输入文件将数据传送给程序,程序的输出指的是从程序将数据传送给输出文件。C++的输入输出包含以下三个方面:
在C语言中,使用printf和scanf进行输入输出,往往不能保证所输入输出的数据是可靠的安全的。在C++的输入输出中,编译系统对数据类型进行严格的检查,凡是类型不正确的数据都不可能通过编译。因此C++的I/O操作是类型安全(type safe)的。C++的I/O操作是可扩展的,不仅可以用来输入输出标准类型的数据,也可以用于用户自定义类型的数据。
在编写C++程序时,使用输入输出需要包含头文件iostream,它包含了用于输入输出的对象,例如常见的cin表示标准输入、cout表示标准输出、cerr表示标准错误。
使用cin进行输入时需要紧跟>>运算符,使用cout进行输出时需要紧跟<<运算符,这两个运算符可以自行分析所处理的数据类型,因此无需像使用scanf和printf那样给出格式控制字符串。其中endl表示换行,与C语言里的\n作用相同。
cin和cout都是C++的内置对象,不是关键字。C++库定义了大量的类,cin和cout分别是istream和ostream类的对象,它们是由标准库的开发者提前创建好的,可以直接拿来使用,这种在C++中提前创建好的对象称为内置对象。
流成员函数setf括号中的参数表示格式状态,它是通过格式标志来指定的。格式标志在类ios中被定义为枚举值。因此在引用这些格式标志时要在前面加上类名ios和域运算符“::”。
using namespace std;
int
main()
{
int
nNum
=
0
;
cin>>nNum;
cout<<
"test cout"
<<nNum<<endl;
return
0
;
}
using namespace std;
int
main()
{
int
nNum
=
0
;
cin>>nNum;
cout<<
"test cout"
<<nNum<<endl;
return
0
;
}
using namespace std;
int
main()
{
/
/
以八进制、十进制、十六进制输出整数
int
nNum
=
99
;
cout <<
"oct="
<<
oct
<< nNum << endl;
cout <<
"dec="
<< dec << nNum << endl;
cout <<
"hex="
<<
hex
<< nNum << endl;
/
/
将浮点数分别以整型,单(双)精度浮点,科学表示法输出
float
fNum
=
123.456f
;
cout <<
"dec="
<< dec << fNum << endl;
cout <<
"fixed="
<< fixed << fNum << endl;
cout <<
"scientific="
<< scientific << fNum << endl;
return
0
;
}
using namespace std;
int
main()
{
/
/
以八进制、十进制、十六进制输出整数
int
nNum
=
99
;
cout <<
"oct="
<<
oct
<< nNum << endl;
cout <<
"dec="
<< dec << nNum << endl;
cout <<
"hex="
<<
hex
<< nNum << endl;
/
/
将浮点数分别以整型,单(双)精度浮点,科学表示法输出
float
fNum
=
123.456f
;
cout <<
"dec="
<< dec << fNum << endl;
cout <<
"fixed="
<< fixed << fNum << endl;
cout <<
"scientific="
<< scientific << fNum << endl;
return
0
;
}
using namespace std;
int
main()
{
/
/
以八进制、十进制、十六进制输出整数
/
/
成员函数unsetf用来终止原来设置的状态,ios::basefield表示进制
int
nNum
=
99
;
cout.setf(ios::
oct
, ios::basefield);
cout <<
"oct="
<< nNum << endl;
cout.setf(ios::dec, ios::basefield);
cout <<
"dec="
<< nNum << endl;
cout.setf(ios::
hex
, ios::basefield);
cout <<
"hex="
<< nNum << endl;
cout.unsetf(ios::
hex
);
/
/
将浮点数分别以整型,单(双)精度浮点,科学表示法输出
float
fNum
=
123.456f
;
cout.setf(ios::
oct
);
cout <<
"oct="
<< fNum << endl;
cout.unsetf(ios::
oct
);
cout.setf(ios::fixed);
cout <<
"fixed="
<< fNum << endl;
cout.unsetf(ios::fixed);
cout.setf(ios::scientific);
cout <<
"scientific="
<< fNum << endl;
cout.unsetf(ios::scientific);
return
0
;
}
using namespace std;
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课