加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C++输入输出语句

(2009-05-01 10:52:51)
标签:

杂谈

分类: 编程基础
IO流是一系列由源到目的的字节流,字节通常是字符。所以数据流是指从输入设备到计算机的序列字符。有两种类型的数据流:输入数据流和输出数据流。输入数据流是指从输入设备到计算机的序列字符。输出数据流是指从计算机到输出设备的序列字符。

1、输出
使用cout输出数据流可以在屏幕上显示字符和数字等数据。为了控制输出格式,C++提供了3种方式,即使用I/O操作符、使用ios类的成员函数和使用cout的相关函数。但实际上,这些函数可以混合使用。
1)使用I/O操作符
常用的一些I/O操作符:
操作符功能应用于
dec                                       格式化为十进制数值输入输出
hex                                       格式化为十六进制数值输入输出
oct                                       格式化为八进制数值输入输出
setiosflags(long flag)             设置flag中指定的标志位输入输出
resetiosflags(long flags)        清除flag中指定的标志位输入输出
ws                                      设置跳过输入中的签到空白字符输入
setw(int width)                    设置输出数据段宽度为width                输出
set precision(int num)          设置浮点数精度位数输出
setfill(int ch)                        设置ch为填充字符输出
endl                                    输出一个换行符并刷新流输出
ends                                    输出一个空字符‘\n’以结束字符串输出
flush                                    强制刷新流输出

注意:使用setwsetprecisionsetfill等操作符需要在程序的前面添加头文件iomanip.h

2)使用ios成员函数
C++中,每一个I/O流都有自己当前的数据控制状态,这些状态用一个长整形表示,即ios类的数据成员x_flags(称为格式化标志字)。这些格式化标志字在ios类中定义为共有的枚举常量。
枚举类型中的每一个符号都用于设置或取消流的数据格式化标志字的一个状态。x_flags的每一位表示格式控制的一个状态标志,通过上述的ios类枚举符号常量,就可以定义x_flags的每一种状态标志。
使用枚举常量时应该加上“iso::”前缀。
由于x_flagsios类的保护成员,所以无法直接对这个标志字进行操作,而必须使用ios类提供的公有成员函数来操作这些标志字。如下所示:
        Setf()
成员函数setf()用于设置状态标志,如:
设置输出流coutshowbase标志使用的语句:cout.setf(ios::showbase);
设置输入流cinskipws标志使用的语句:cin.setf(ios::skipws);
setf()中还可用位操作符“|”将多个标志连接在一起。例如:
cout.setf(ios::scientific|ios::showpoint);就是同时设置了两个标志。
        unsetf()
成员函数unsetf()用来取消格式标志。具体用法和setf()相似。

3)使用cout的相关函数
除了前面的两种方式可以格式化输出数据外,也可以直接使用cout的相关函数,常用的有precisionwidthfillput等函数。
        precision()成员函数
该成员函数的声明如下:int  precision([int num])
用于设置或返回(不带参数时)浮点数的输出精度。也就是通过这个公共成员函数设置ios类的保护数据成员x_precision的值,该成员的默认值为6precision()函数的设置值一直有效,直到下一个precision()函数改变该值为止。
        width()成员函数
该函数的声明:int width([int len])
用于设置或返回(不带参数时)输出数据的字段宽度。也就是通过这个公共成员函数设置ios类的保护数据成员x_width的值。width()函数的设置只对下一个输出有效。
        fill()成员函数
该函数的声明:char fill([char ch])
用于设置或返回(不带参数时)输出的填充字符。也就是通过这个公共成员函数设置ios类的保护数据成员x_fill的值,该成员的默认值为空格。fill()函数的设置值一直有效,直到下一个fill()函数改变该值为止。
        put()成员函数
该函数的声明:char put(char ch)
用于输出字符chPut还可以级联,如put(ch1).put(ch2),输出字符是ch1ch2

2、输入
  C++提供了输入数据流cin,可以利用输入数据流cin读取键盘输入的字符和数字等,并把它赋值给指定的变量。从键盘输入的数据通过cin接受,再由提取运算符>>送到程序指定的变量中,因此,用户输入数据时要避免输入的数据超出指定变量的值域。
1)使用I/O操作符
具体的使用和cout类似
2)使用cin的成员函数
为了输入字符和字符串,cin提供了getgetline成员函数。
        get成员函数
该成员函数没有参数,从指定的数据流中输入一个字符(即使这是空白字符),并返回这个字符作为函数调用的值。
        getline成员函数
该成员函数的基本使用格式:getline(字符串首地址,最大长度)
用于将用户输入的字符串放在“字符串首地址”指定的内存中,最大长度不能超过“最大长度”指定的值。

0

阅读 收藏 喜欢 打印举报/Report
前一篇:Dev C++
后一篇:gethostbyname()
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有