C++中的输入输出(一)

在C语言中,用printf()和scanf()进行输入输出,但是不能保证所输入输出的数据是安全、可靠的。C++的I/O操作时类型安全的(type safe)。


iostream头文件中定义了四种流对象,分别是cin、cout、cerr和clog。其中,向键盘输入时用cin流,向显示器输出时用cout流,向显示器输出错误信息

时用cerr和clog流。 

cerr和cout的流的区别:

两者虽然都是向显示器输出数据,但是cout可以重定向到其他文件,而cerr只能向显示器输出错误提示信息,而且错误信息是根据用户需要设置的。

clog流和cerr差不多,都是向显示器输出错误信息,但是cerr是不经过缓冲区,直接显示在显示器上,而clog是先经过缓冲区,等到缓冲区满

或者遇到endl时,才向显示器输出结果。


格式输出数据

方法一:使用控制符(但要包含头文件 iomanip)

例子:

int a;

cin>>a;

cout<<"dec:"<<dec<<a<<end;    // 以十进制输出整数a

cout<<"hex:"<<hex<<a<<endl;   //以十六进制输出整数a

cout<<"oct"<<setbase(8)<<a<<end;   //以八进制输出整数a

char *p="china";

cout<<setw(10)<<p<<endl;     //指定输出域宽为10,输出字符串                         输出结果为      china

cout<<setfill('*')<<setw(10)<<p<<endl;   //指定域宽为10,空白部分用*代替      输出结果为*****china


方法二:用流对象的成员函数控制输出格式

流成员函数setf通过格式标志来控制输出的格式,格式标志在类ios中被定义为枚举类型,因此在引用的时候要加上类ios和域运算符::

例子:

        inta=21
        cout.setf(ios::showbase);//显示基数符号(0x或0)
        cout<<″dec:″<<a<<endl; //默认以十进制形式输出a
        cout.unsetf(ios::dec); //终止十进制的格式设置
        cout.setf(ios::hex); //设置以十六进制输出的状态
       cout<<″hex:″<<a<<endl; //以十六进制形式输出a
       cout.unsetf(ios::hex); //终止十六进制的格式设置
       cout.setf(ios::oct); //设置以八进制输出的状态
       cout<<″oct:″<<a<<endl; //以八进制形式输出a
       cout.unseft(ios::oct);







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值