贺老师的教学链接 本课讲解
cerr流对象使用:解方程ax^2+bx+c=0
//解一元二次方程ax^2+bx+c=0:从键盘输入a,b,c的值,求x1和x2。如果a=0或b2-4ac<0,输出出错信息。
#include<iostream>
#include <cmath>
#include<iomanip>
using namespace std;
int main( )
{
float a,b,c,delta;
cout<<"please input a,b,c:";
cin>>a>>b>>c;
if (a==0)
cerr<<"a is equal to zero,error!"<<endl;
else if ((delta=b*b-4*a*c)<0)
cerr<<"delta < 0"<<endl;
else
{
cout<<"x1="<<(-b+sqrt(delta))/(2*a)<<endl;
cout<<"x2="<<(-b-sqrt(delta))/(2*a)<<endl;
}
return 0;
}
格式控制示例
#include <iostream>
#include <iomanip>//不要忘记包含此头文件
using namespace std;
int main()
{
int a;
cout<<"input a:";
cin>>a;
cout<<"hex:"<<hex<<a<<endl; //以十六进制形式输出整数a
cout<<"oct:"<<setbase(8)<<a<<endl; //以八进制形式输出整数a
cout<<"dec:"<<dec<<a<<endl; //以十进制形式输出整数
char *pt="China"; //pt指向字符串"China"
cout<<setw(10)<<pt<<endl; //指定域宽为10,输出字符串
cout<<setfill('*')<<setw(10)<<pt<<endl; //指定域宽10,输出字符串,空白处以'*'填充
double d=225.0/7.0; //计算d值
cout<<"d="<<d<<endl; //输出d值
cout<<"d="<<setprecision(4)<<d<<endl; //改为4位小数
cout<<"d="<<setiosflags(ios::fixed)<<d<<endl;//改为固定位数形式输出
cout<<setprecision(5)<<d<<endl;
cout<<"d="<<setiosflags(ios::fixed)<<setprecision(5)<<d<<endl;//改为固定小数位数形式输出
return 0;
}
流成员函数setf中的格式标志
#include <iostream>
using namespace std;
int main( )
{
int a=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.unsetf(ios::oct);
char *pt="China"; //pt指向字符串"China"
cout.width(10); //指定域宽为10
cout<<pt<<endl; //输出字符串
cout.width(10); //指定域宽为10
cout.fill('*'); //指定空白处以'*'填充
cout<<pt<<endl; //输出字符串
double pi=22.0/7.0; //输出pi值
cout.setf(ios::scientific); //指定用科学记数法输出
cout<<"pi="; //输出"pi="
cout.width(14); //指定域宽为14
cout<<pi<<endl; //输出pi值
cout.unsetf(ios::scientific); //终止科学记数法状态
cout.setf(ios::fixed); //指定用定点形式输出
cout.width(12); //指定域宽为12
cout.setf(ios::showpos); //正数输出“+”号
cout.setf(ios::internal); //数符出现在左侧
cout.precision(6); //保留6位小数
cout<<pi<<endl; //输出pi,注意数符“+”的位置
return 0;
}
输出流对象的成员函数——先认识 put
//例
#include <iostream>
using namespace std;
int main( )
{
char *a="BASIC";
for(int i=4; i>=0; i--)
cout.put(*(a+i));
cout.put('\n');
return 0;
}