C++流操作算子

用过c语言的都知道c语言的精度格式控制非常简单容易,刚学C++也许还不懂怎么在C++中使用这些功能.这里有两个方法来使用这些功能.

变量使用:

    int n = 64;
    double d = 123.45;
    double d2 = 0.0183;

一.使用流操纵算子

首先得包含头文件

1.宽度控制

    cout << n << ‘#‘ << endl;
    //宽度控制不会影响下一个变量
    cout << setw(10) << n << ‘#‘ << endl;//默认右对齐
    cout << n << ‘#‘ << endl;

2.对齐控制

    //对齐控制会影响下面的变量对其方式
    cout << setw(10) << setiosflags(ios::left) << n << ‘#‘ << endl;//左对齐
    cout << setw(10) << n << ‘#‘ << endl;
    cout << setw(10) << setiosflags(ios::right) << n << ‘#‘ << endl;//还原成右对齐
    //cout << setw(10) << resetiosflags(ios::left) << n << ‘#‘ << endl << endl;//还原成右对齐

3.填充控制

    //填充控制会影响下面的输出
    cout << setw(10) << setfill(‘@‘) << n << ‘#‘ << endl;
    cout << setw(10) << n << ‘#‘ << endl;
    cout << setw(10) << setfill(‘ ‘) << n << ‘#‘ << endl; //还原成空格填充

4.精度控制

    //精度控制会影响下面的输出
    cout << setprecision(4) << d << endl; //控制有效数字的位数
    cout << setprecision(2) << d2 << endl;//四舍五入,而不是简单的截断
    cout << d << endl;
    cout << setiosflags(ios::fixed);      //控制小数点后面的位数
    cout << setprecision(4) << d << endl; //同样是四舍五入
    cout << setprecision(2) << d2 << endl;

5.进制控制

    cout << "dec: " << n << endl;
    cout <<"oct: "<<oct << n << endl;
    cout << "hex: " << hex << n << endl;
    cout << n << endl;
    cout << setiosflags(ios::showbase);//显示对应进制前面的符号
    cout << "dec: " << dec <<n << endl;
    cout << "oct: " << oct << n << endl;
    cout << "hex: " << hex << n << endl;
    cout << setbase(8) << n << endl;   //进制输出
    cout << setbase(10) << n << endl;
    cout << setbase(16) << n << endl;

二.以流成员函数的方式(不用包含iomanip头文件)

1.宽度控制

    cout << n << endl;
    cout.width(10);
    cout << n << ‘#‘ << endl;

2.对齐控制

    cout << n << endl;
    cout.width(10);
    cout.setf(ios::left);
    cout << n << ‘#‘ << endl;
//  cout.width(10);
//  cout.setf(ios::right);
//  cout << n << ‘#‘ << endl;
    cout.width(10);
    cout.unsetf(ios::left);
    cout << n << ‘#‘ << endl;

3.填充控制

    cout << n <<‘#‘<< endl;
    cout.width(10);
    cout.fill(‘@‘);
    cout << n << ‘#‘ << endl;
    cout.width(10);
    cout << n << ‘#‘ << endl;
    cout.width(10);
    cout.fill(‘ ‘);
    cout << n << ‘#‘ << endl;

4.精度控制

    cout.precision(2);   //这个会影响下面的输出
    cout << d << endl;
    cout << d2 << endl;
    cout.setf(ios::fixed);  //控制小数点位数
    cout << d << endl;
    cout << d2 << endl;

5.进制控制

    cout.unsetf(ios::dec); //要切换进制的时候需要先去掉原先的进制
    cout.setf(ios::oct);
    cout << n << endl;

输出为100.

时间: 2024-11-05 10:26:44

C++流操作算子的相关文章

Java8函数式编程(二):类比Spark RDD算子的Stream流操作

1 Stream流 对集合进行迭代时,可调用其iterator方法,返回一个iterator对象,之后便可以通过该iterator对象遍历集合中的元素,这被称为外部迭代(for循环本身正是封装了其的语法糖),其示意图如下: 除此之外,还有内部迭代方法,这正是这里要说明的集合的stream()方法返回的Stream对象的一系列操作,比如,要统计一个数字列表的偶数元素个数,当使用Stream对象的操作时,如下: List<Integer> list = new ArrayList<Integ

黑马程序员—IO(一)流概述、字符流、字节流、流操作规律

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 第一节     IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都在IO包中. 4)流按其操作数据的类型分为两种:字节流和字符流. 5)流按其流向分为:输入流和输出流. 注意:流只能操作数据,而不能操作文件. 3.IO流的常用基类: 1)字节流的抽象基流:Inp

黑马程序员——IO流概述、字符流、字节流、流操作规律(一)

第一节     IO概述 概述 1.IO流:即InputOutput的缩写. 2.特点: 1)IO流用来处理设备间的数据传输. 2)Java对数据的操作是通过流的方式. 3)Java用于操作流的对象都在IO包中. 4)流按其操作数据的类型分为两种:字节流和字符流. 5)流按其流向分为:输入流和输出流. 注意:流只能操作数据,而不能操作文件. 3.IO流的常用基类: 1)字节流的抽象基流:InputStream和OutputStream 2)字符流的抽象基流:Reader和Writer 注:此四个

Java I/O流操作(二)---缓冲流[转]

转自:http://blog.csdn.net/johnny901114/article/details/8710403 一.BufferWriter类 IO的缓冲区的存在就是为了提高效率,把要操作的数据放进缓冲区,然后一次性把缓冲区的内容写到目的地,而不是写一次就往目的地写一次. 在这里要注意的是当我们关闭了缓冲区对象实际也关闭了与缓冲区关联的流对象. BufferWriter类 try { FileWriter fw =new FileWriter("test.txt"); //使

IO流操作规律

IO流的操作规律 * 字符流: * FileReader * FileWriter * BufferedReader * InputStreamReader * OutputStreamWriter * 字节流: * FileInputStream * FileOutputStream * BufferedInputStream * BufferedOutputStream 用哪个流对象解决问题呢? 明确一:明确源和目的 源:读,输入体系,InputStream   Reader 目的:写,输出

黑马程序员——Java基础---IO(二)---IO字节流、流操作规律

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! -------   字节流 一.概述 1.字节流和字符流的基本操作是相同的,但字节流还可以操作其他媒体文件. 2.由于媒体文件数据中都是以字节存储的,所以,字节流对象可直接对媒体文件的数据写入到文件中,而可以不用再进行刷流动作. 3.读写字节流:Inpu

java的IO操作:字节流与字符流操作

流的概念 程序中的输入输出都是以流形式,流中保存的实际上都是字节文件. 字节流与字符流 字节流的操作: 1)输入:inputStream, 2)输出:outPutStream; 字符流的操作: 1)输入主要使用:write类. 2)输出主要使用:reader类. 内容操作就四个类. 操作流程: 使用File类操作一定有路径问题,注意分隔符: 实际上四个操作类都是抽象类(区别接口,抽象类的成员都是抽象,并且只能单继承,接口可以有全局变量,但是接口可以多继承) IO操作属于资源操作,对于资源操作,操

Stream 流操作

Stream 类 先看下面的图 Stream 是所有流的抽象基类(不能被实例化,需要使用他的派生类FileStream/MemoryStream/BufferedStream).流是字节序列的抽象概念,例如文件.输入/输出设备.内部进程通信管道或者 TCP/IP 套接字.Stream 类及其派生类提供这些不同类型的输入和输出的一般视图,使程序员不必了解操作系统和基础设备的具体细节. 流涉及三个基本操作: 可以读取流.读取是从流到数据结构(如字节数组)的数据传输. 可以写入流.写入是从数据结构到流

java网络编程TCP传输—流操作—服务端反馈与客户端接收

在读取完流后,服务端会向客户端返回一些数据,告诉客户端,已经写完了. 在这里和”流操作—拿到源后的写入动作“差不多,客户端同样以byte与Buffered两种缓冲读取作为例子,同时,.也是希望大家给补充. 1.利用OutputStream向客户端回写,客户端用byte作为缓冲接收 向客户端回写: 1 //获取socket输出流,将上传成功字样传给客户端 2 OutputStream out=s.getOutputStream(); 3 out.write("上传成功".getBytes