在c++中利用cout进行输出的时候可以规定程序输出的结果的显示方式,也就是数用指数形式表示还是以数的形式表示。下面介绍修改程序结果显示方式的方法:
setf()函数:
1、fmtflags setf( fmtflags flags );
2、fmtflags setf( fmtflags flags, fmtflags needed );
上述两种定义是在c++的api中看到的。因此,该方法有两种使用方法,一种是一个参数的。第二种是两个参数的。下面分别来说一下:
第一种情况:(函数中传一个参数)规定cout输出数字的形式。
上面表格中规定了输出以何种方式输出。下面举个例子:
cout<<showpos;
cout<<10.0/6<<endl;
cout<<10%(-6)<<endl;
cout<<1e10/5<<endl;
cin.get();
return 0;
结果如图:
当然,这里还有第二种方法,如结果图中注释的第二行。cout<<showpos;也可以实现相同的结果。这里读者可以自己尝试一下。这种方法配一张图,下图中所有标志都可以用这种方法进行规定:
第二种情况:setf()中含有两个参数。这时,两个参数一起规定输出的格式。如下表:
根据上面表格中的内容可以组合来对cout输出进行规定,例如:
cout.setf(ios_base::scientific,ios_base::floatfield);
cout<<10.0/6<<endl;
cout<<10%(-6)<<endl;
cout<<1e10/5<<endl;
cin.get();
return 0;
运行结果如图:(其余情况可以自行演示)
有人可能会有疑问,为什么第二行中不是科学计数法,这里需要注意,setf等这两种写法只是规定小数也就是浮点数的写法规范。