C++输入输出的格式控制2

来源:互联网 发布:数据地图网 编辑:程序博客网 时间:2024/06/06 07:15

》对齐方式的控制

       初始的对齐方式为右对齐,可以改变这一设置,使得输出采用左对齐方式或内部对齐方式。对齐方式的设置一直有效,直到再次设置对齐方式时为止。只有在设置了宽度的情况下,对齐操作才有意义。

       有关操作符:

          # left:在设定的宽度内左对齐输出,右端使用设定的填充字符填满。

            等价函数调用:0.setf(ios_base::left,ios_base::adjustfield)

         # right:(此为默认设置)在设定的宽度内右对齐输出,左端使用设定的填充字符填满。

           等价函数调用:0.setf(ios_base::right,ios_base::adjustfield)

         # internal:在设定的宽度内右对齐输出;但若有符号(-或+),符号置于最左端。

           等价函数调用:0.setf(ios_base::internal,ios_base::adjustfield)

        示  例:

        cout<<setw(10)<<123<<"OK"<<endl;

        cout<<left<<setw(10)<<123<<"OK"<<endl;

        将输出:

                    123OK

        123            OK


》小数点处理方式的控制

        此设置只影响采用浮点格式输出的浮点数据。在初始状态下,若一浮点数的小数部分为0,则不输出小数点及小数点后的无效0;可以改变这一设置,使得在任何情况下都输出小数点及其后的无效0。小数点处理方式的设置一直有效,直到再次设置小数点处理方式时为止。

        有关操作符:

          # showpoint:即使小数部分为0,也输出小数点及其后的无效0。

            等价函数调用:o.setf(ios_base::showpoint)

         # noshowpoint:(此为默认设置)小数部分为0时不输出小数点。

           等价函数调用:o.unsetf(ios_base::showpoint)

         示  例:

         cout<<723.0<<endl;

         cout<<showpoint<<723.0<<endl;

         将输出:

         723

         723.000


》填充字符的控制

        在输出数据时,如果数据宽度小于设置的宽度,则空闲位置要用填充字符填满。初始填充字符为空格,可以将别的字符设置为填充字符。填充字符的设置一直有效,直到再次设置填充字符时为止。只有在设置了宽度的情况下,字符填充操作才有意义。

        有关操作符:

           # setfill(char c):设置填充字符

            等价函数调用:io.fill(c)

          函数返回此前设置的填充字符

          示  例:

          cout<<setw(10)<<12.34<<endl;

          cout<<setfill('*')<<setw(10)<<12.34<<endl;

          将输出:

                    12.34

          *****12.34


》插入换行符

        # endl:插入换行符(即‘\n’)并强制写缓冲区,实现输出的回车换行。

          等价函数调用:o.put(o.widen('\n'));o.flush()


》输入输出数制状态的控制

        初始状态为十进制,可以将之设置为八进制或十六进制。数制状态的设置一直有效,直到下一次设置为止。

        有关的操作符:

          # dec:(此为默认值)将整数按十进制输入输出。

           等价函数调用:io.setf(ios_base::dec,ios_base::basefield)

          # oct:将整数按八进制输入输出。

           等价函数调用:io.setf(ios_base::oct,ios_base::basefield)

          # hex:将整数按十六进制输入输出。

           等价函数调用:io.setf(ios_base::hex,ios_base::basefield)


          # setbase(int base):设置数制(8、10、16)

            等价函数调用:io.setf(ios_base::oct,ios_base::basefield)等

          # showbase:将输出的整数生成一个前缀,用以表示该数的数制:对于八进制数前面输出一个无效0;对于十六进制前面输出0x。

            等价函数调用:o.setf(ios_base::showbase)

          # noshowbase(此为默认设置)取消上述设置。

            等价函数调用:o.unsetf(ios_base::uppercase)

          示  例:

           cout<<12<<'\t'<<oct<<9<<'\t'<<hex<<16<<'\t'<<dec<<10<<endl;

           将输出:

           12   11  10  10


0 0
原创粉丝点击