Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)qqpublished in(发表于) 2014/7/9 22:37:09 C、C++输入、输出流[二]
C/C++输入/输出流[二]标准输入流是从标准输入设备(如键盘)流向程序的数据。在输入数据时,可以用cin 流或字符输入的流成员函数进行数据的输入。标准输出流是流向标准输出设备(如显示器)的数据。在输出数据时,往往不指定输出格式,由系统采取默认的格式,但有时需要指定输出格式,通常有两种方法:一种是使用控制符的方法;另一种是使用流对象的有关成员函数。用于控制输出格式的常用成员函数见表3-1。表 3-1 用于控制输出格式的流成员函数标准输入流cin 是istream 类的对象,程序中的变量通过流提取符“>>”从流中提取数据。在提取过程中通常跳过输入流中的空格、Tab 键、换行符等空白字符,只有按Enter 键后,该行数据才被送入键盘缓冲区,形成输入,提取符“>>”才能从中提取数据。程序描述:通过测试 cin 的真值,判断流对象是否处于正常状态。【源程序 3-1】 01 #include 02 using namespace std;03 int main()04 {05 cout<<"enter grade:";06 while(cin>>grade)07 {08 if(grade>=85)09 cout<10 if(grade<60)11 cout<12 cout<<"enter grade:";13 }14 cout<<"The end."<15 return 0;16 }程序说明:第 6 行,输入过程中,如遇到无效字符或文件结束符(不是换行符,而是文件中的数据已读完)时,输入流cin 就处于出错状态,无法正常提取数据。知识点:(1) 流提取符“>>”不断地从流中提取数据(每次提取一个浮点数)。如果成功,就赋给grade,此时cin 为真;若不成功则cin 为假。如果输入文件结束符,表示数据已读完。(2) 在Visual C++环境下运行此程序,在按Ctrl+Z 组合键时,程序运行立即结束,而不输出“The end”。标准输出流程序描述:用流控制成员函数输出数据。【源程序 3-2】 01 #include 02 using namespace std;03 int main()04 {05 int a=21;06 cout.setf(ios::showbase); //显示基数符号07 cout<<"dec:"<08 cout.unsetf(ios::dec); //终止十进制的格式设置09 cout.setf(ios::hex); //设置以十六进制输出的状态10 cout<<"hex:"<11 cout.unsetf(ios::hex); //终止十六进制的格式设置12 cout.setf(ios::oct); //设置以八进制输出的状态13 cout<<"oct:"<14 cout.unsetf(ios::oct);15 char *pt="China";16 cout.width(10); //指定域宽为1017 cout<18 cout.width(10);19 cout.fill('*'); //指定空白处以“*”填充20 cout<21 double pi=22.0/7.0;22 cout.setf(ios::scientific); //指定用科学记数法输出23 cout<<"pi=";24 cout.width(14);25 cout<26 cout.unsetf(ios::scientific); //终止科学记数法状态27 cout.setf(ios::fixed); //指定用定点形式输出28 cout.width(12);29 cout.seft(ios::showpos); //正数输出“+”号30 cout.setf(ios::internal); //数符出现在左侧31 cout.precision(6); //保留6 位小数32 cout<33 return 0;34 }知识点:(1) 成员函数width(n)和控制符setw(n)只对其后的第一个输出项有效。(2) 用setf()函数设置格式状态时,可以包含两个或多个格式。
赞