第10章输入输出流试题.ppt
文本预览下载声明
【例10-4】使用成员函数实现例10-2的同样输出效果 /*10-4.cpp*/ #includeiostream.h #includeiomanip.h int main( ) { int x=30; cout x = xendl; //按十进制输出 cout x = ; cout.unsetf(ios::dec); //取消十进制输出设置 cout.setf(ios::oct); //设置为八进制输出 coutxendl; //按八进制输出 cout x = ; cout.unsetf(ios::oct); //取消八进制输出设置,恢复按十进制输出 cout.setf(ios::hex); //设置为十六进制输出 * coutxendl; //按十六进制输出 cout x = ; cout.setf(ios::uppercase); //设置数值中的字母大写输出 coutxendl; cout.unsetf(ios::uppercase); //取消数值中的字母大写输出 cout x = xendl; cout.unsetf(ios::hex); //取消十六进制输出设置,恢复按十进制输出 return 0; } * 10.2.3 标准输入流 1. cin流 cin 是类 istream 的对象,即标准输入流,在不作其它说明条件下,与标准输入设备(一般指键盘)相关联。???? 使用时要注意: (1) 一般情况下提取运算符作用于 cin 对象。 (2) 也可以自己构造输入流对象,例如:istream?obj;。 (3) 输入语句中可以串联多个提取运算符,每个提取符后为一表达式,该表达式是获得输入值的变量和对象。 (4) 提取操作时,空白符(空格、tab键、换行符)只用于字符的分隔符,其本身不作为从输入流中提取的字符。 (5) 提取运算符可以从输入流中读取一个字符串,该字符串是以空白符结束的一个字符序列,由系统自动加上\0字符。 * 2 . 用流成员函数输入字符 (1) 用流成员函数getline输入字符 其函数原型为: getline(chiar *str,int size,char=\n); 第一个参数是字符数组,用于存放整行文本,第二个参数是读取的最大字符个数,第三个参数是作为界限的字符,默认是\n换行符,如果是其他的符号亦可。 其用法共有三种:: ①getline(chiar *str,int size); 其作用为:如果指定输入流中的数据个数大于等于size,则从其中提取(size-1)个字符,赋给指针指向的字符数组,然后在数组第size个位置加入字符串结束标志‘\0’。 * ② getline(chiar *str,char=\n); 其作用为:从指定的输入流中提取字符,遇到指定中止字符(回车)时结束,然后将这些字符放入字符数组,并且在最后一个字符的下一个位置加入字符串结束标志‘\0’。 ?③ getline(chiar *str,int size,char=\n); 其作用为:从指定输入流中提取(size-1)个字符,赋给指针指向的字符数组,然后在数组第size个位置加入字符串结束标志\0。如果提取(size-1)个字符之前遇到指定中止字符(回车),则提前结束,并且在最后一个字符的下一个位置加入字符串结束标志‘\0’。 * 【例10-5】从键盘上输入不同个数的字符,按不同的规律接收。 /*10-5.cpp*/ #include iostream.h int main( ) { char str[5]; cin.getline(str,sizeof(str),\n); coutstrendl; return 0; } * ?当输入字符个数小于4便按下回车: 再次运行程序,当输入字符个数大于4再按下回车: * (2) 用流成员函数get输入字符 在输入时有可能每次只需要输入单个字符,这时候我们可以使用get( )成员函数来实现。 函数原型为: get (char *str,int size,char=\n); 参数含义与getline( )相同。 其用法共有五种: ①get ( ); 其作用为:从指定的输入流中提取一个字符,其返回值可作为右值。 * ②get(char ch); 其作用为:从指定的输入流中提取一个字符,然后赋给ch。 例如: char ch; get(ch); //可从输入设备中提取字符,赋给ch
显示全部