精华内容
下载资源
问答
  • c++语言输出格式控制符
    千次阅读
    2021-05-19 15:39:42

    http://zhidao.baidu.com/link?url=-YJjz3U0fd_eSW9eLa8ankGo_QbyOOOaKYWyAY9g4mKWQj0DN6l12OSLJz24U8jCwo18MiBCzwpkFLoDM02yv_

    printf的格式控制的完整格式:

    %     -     0     m.n     l或h     格式字符

    下面对组成格式说明的各项加以说明:

    ①%:表示格式说明的起始符号,不可缺少。

    ②-:有-表示左对齐输出,如省略表示右对齐输出。

    ③0:有0表示指定空位填0,如省略表示指定空位不填。

    ④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。

    ⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。

    ---------------------------------------

    格式字符

    格式字符用以指定输出项的数据类型和输出格式。

    ①d格式:用来输出十进制整数。有以下几种用法:

    %d:按整型数据的实际长度输出。

    %md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

    %ld:输出长整型数据。

    ②o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽度用“%mo”格式输出。

    例:

    main()

    { int a = -1;

    printf("%d, %o", a, a);

    }

    运行结果:-1,177777

    程序解析:-1在内存单元中(以补码形式存放)为(1111111111111111)2,转换为八进制数为(177777)8。

    ③x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段宽度用"%mx"格式输出。

    ④u格式:以无符号十进制形式输出整数。对长整型可以用"%lu"格式输出。同样也可以指定字段宽度用“%mu”格式输出。

    ⑤c格式:输出一个字符。

    ⑥s格式:用来输出一个串。有几中用法

    %s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。

    %ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。

    %-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。

    %m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。

    %-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。

    ⑦f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:

    %f:不指定宽度,整数部分全部输出并输出6位小数。

    %m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。

    %-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。

    ⑧e格式:以指数形式输出实数。可用以下形式:

    %e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。

    %m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。

    ⑨g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。

    ---------------------------------------

    关于printf函数的进一步说明:

    如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示,如:

    printf("%f%%", 1.0/3);

    输出0.333333%。

    ---------------------------------------

    对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位.

    对于双精度数,使用%lf格式符输出时,前16位是有效数字,小数6位.

    对于m.n的格式还可以用如下方法表示(例)

    char ch[20];

    printf("%*.*s\n",m,n,ch);

    前边的*定义的是总的宽度,后边的定义的是输出的个数。分别对应外面的参数m和n 。我想这种方法的好处是可以在语句之外对参数m和n赋值,从而控制输出格式

    我自己敲过格式符的代码,给你看看吧:

    C语言的格式控制符

    1.         格式控制符 格式输出printf 作用是向终端输出若干个类型任意的数据. 格式:printf (格式控制符,输出列表) 1)         格式控制符 l          % ...

    c语言格式大整理

    1.C语言中,非零值为真,真用1表示:零值为假,假用0表示. 2.转义字符参考: \a 蜂鸣,响铃 \b 回退:向后退一格 \f 换页 \n 换行 \r 回车,光标到本行行首 \t 水平制表 \v 垂 ...

    C++流格式控制符的使用【来自网络】

    注意添加头文件. 使用控制符控制输出格式 控制符 作用 dec 设置整数的基数为10 hex 设置整数的基数为16 oct 设置整数的基数为8 setbase(n) 设置 ...

    html标记语言 --格式标记

    html标记语言 --格式标记 一.格式标记 1.
    单标记,强制换行标记,让后面的文字.图片.表格等显示在下一行 2.

    换段落标记 3.

    居 ...

    c语言输出控制符

    c语言格式输出 %d 10进制 %f 浮点型输出 %lf 长浮点型输出 %c 字符输出 %s 字符串输出 %o 八进制输出 %x 十六进制输出 %p 16进制,一般输出地址 %e 科学计数法输出 %m ...

    [经验分享]SecureCRT导出操作日志 + Notepad自定义语言格式高亮日志文件

    起因及效果展示 最近使用CRT,有些命令会输出很多内容,这时如果你想要得知输出内容是从哪里开始的,很容易被大量的同种颜色的文字搞的晕头转向.如果输入的命令是不同的颜色,这会大大得帮助我们. 所谓的命令 ...

    Swift学习——格式控制符和元组流程控制(二)

    Swift中的格式控制符和元祖 (1)首先介绍一下元祖,元祖是关系型数据库中  比如学生表中的姓名,年龄,电话等 定义例如以下 var studentinfo = ("jhon", ...

    scanf格式控制符之%[]的应用

    考虑只读入小写字母的字符串,这个问题要如何用scanf解决呢? 这就用到了%[] 这个格式控制符,它支持a-z这样的格式控制 char s[111]; scanf("%[a-z]" ...

    随机推荐

    php使用microtime(true)查看代码执行时间

    microtime() 函数返回当前 Unix 时间戳和微秒数. 如果带个 true 参数, 返回的将是一个浮点类型 round() 取出小数点后 3 位 $t1 = microtime(true); ...

    SQL Server2000清除数据库日志

    sqlserver2000压缩日志 可以将jb51.ldf文件变得很小,方便备份数据库等,在sqlserver查询分析器中执行即可.复制代码 代码如下: DUMP TRANSACTION [jb51] ...

    初识IStructuralEquatable接口

    System.Collections.IStructuralEquatable 是 .NET Framework 4.5 新引入的一个接口,位于System.Runtime.dll程序集中. MSDN ...

    iOS梦想之路-最新消息

    查看博客请转到 iCocos梦工厂 个人微信:18370997821 QQ:790806573 weibo:18370998721 谢谢:

    在使用Kettle的集群排序中 Carte的设定——(基于Windows)

    本片文章主要是关于使用Kettle的UI界面: Spoon来实现基于集群的对数据库中的数据表数据进行排序的试验. 以及在实验过程中所要开启的Carte服务的一些配置文件的设置, 还有基于Windows ...

    js 技巧1

    1. 使用===取代==    ==和!=操作符会在需要的情况下自动转换数据类型.但===和!==不会,它们会同时比较值和数据类型,这也使得它们要比==和!=快. "){ //速度慢 } & ...

    关于闭包与for循环的理解

    function createFunction1(){ for(var i=0;i<5;i++){ function s(){ console.log(i); } s(); } } create ...

    软工&plus;C&lpar;2017第5期&rpar; 工具和结构化

    // 上一篇:Alpha/Beta换人 // 下一篇:最近发展区/脚手架 工具/轮子 软件工程/计算机相关专业的一个特点是会使用到众多的工具,工具的使用是从程序猿进化到程序员的一个关键要素.软件工程师 ...

    Linux 虚拟机上安装linux系统 &lpar;ip&colon;子网掩码,网关&comma;dns&comma;交换机&comma;路由知识回顾&rpar;

    一 安装虚拟机 二 虚拟机上配置好在安装linux系统 三 知识回顾 交换机:主机在局域网内的身份是MAC地址(可以通过[交换机广播:交换机通过被动学习来建立一张“接口号”和“MAC地址”的对照表]或 ...

    javascript prop和attr的区别

    在网上找了一些资料,通过自己去寻找,尝试,此次做一次总结. 1/  attr()是jQuery 1.0版本就有的函数,    prop()是jQuery 1.6版本新增的函数.毫无疑问,在1.6之前, ...

    更多相关内容
  • C++控制输出格式

    千次阅读 2022-02-03 16:11:25
    C++控制输出格式

    setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6,所以不管数据是多少,都只输出六位。如果setprecision(n)与setiosflags(ios::fixed)或者setiosflags(ios_base::fixed)合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。 如果与setiosnags(ios::scientific)合用,可以控制指数表示法的小数位数。setiosflags(ios::scientific)是用指数方式表示实数。

    I/O流常用控制符:

    使用控制符时,在程序开头加投文件#include <iomanip> C++有两种方法控制格式输出:1、用格式控制符;2、用流对象的成员函数 格式控制符:

    dec                                 设置基数为10

    hex                                 设置基数为16

    oct                                 设置基数为8

    setfill(c)                          设置填充字符c

    setprecision(n)                     设置显示小数精度为n位

    setw(n)                             设置域宽为n个字符

    setiosflags(ios::fixed)             固定的浮点显示

     setiosflags(ios::scientific)        指数表示

    setiosflags(ios::left)              左对齐

    setiosflags(ios::right)             右对齐

    setiosflags(ios::skipws)            忽略前导空白

    setiosflags(ios::uppercase)         16进制数大写输出

    setiosflags(ios::lowercase)         16进制小写输出

    成员函数:

    flags(10)                           设置基数为10

    flags(16)                           设置基数为16

    flags(8)                            设置基数为8

    flags(c)                            设置填充字符c

    precision(n)                        设置显示小数精度为n位

    width(n)                            设置域宽为n个字符

     在新版本的c++中头文件已经用iomanip取代了iomanip.h。

      以下是一些常用的函数:

      dec 置基数为10 相当于"%d"

      hex 置基数为16 相当于"%X"

      oct 置基数为8 相当于"%o"

      setfill(c) 设填充字符为c

      setprecision(n) 设显示小数精度为n位

      setw(n) 设域宽为n个字符

      setiosflags(ios::fixed) 固定的浮点显示

      setiosflags(ios::scientific) 指数表示

      setiosflags(ios::left) 左对齐

      setiosflags(ios::right) 右对齐

      setiosflags(ios::skipws 忽略前导空白

      setiosflags(ios::uppercase) 16进制数大写输出

      setiosflags(ios::lowercase) 16进制小写输出

      setiosflags(ios::showpoint) 强制显示小数点

      setiosflags(ios::showpos) 强制显示符号

    上面的内容我自己测试一些代码,不全,但是这个格式太多了,以后用到再来看看。

      View Code

     1 #include <iostream>
     2 #include <iomanip>
     3 using namespace std;
     4 int main ()
     5 {
     6     double a=123456.343001;
     7     cout<<"a的值为123456.343001"<<endl<<endl; 
     8     cout<<"不做任何操作,默认情况下只显示6六位数据:"<<a<<endl<<endl;
     9     cout<<"指定10位小数且为浮点数表示setiosflags(ios::fixed):"<<setiosflags(ios::fixed)<<setprecision(10)<<a<<endl<<endl;
    10     cout<<"指定为10位小数且为指数形式表示setiosflags(ios::scientific),就是留下有效位:如何指定的有效位超过本来的有效位,其输出就是本身的位数:"<<setiosflags(ios::scientific)<<setprecision(12)<<a<<endl<<endl;
    11     cout<<"指定为10位小数且为指数形式表示setiosflags(ios::scientific),就是留下有效位:setprecision(10)指定留下10位有效位"<<setiosflags(ios::scientific)<<setprecision(10)<<a<<endl<<endl;
    12     cout<<"左对齐:"<<setiosflags(ios::left)<<setprecision(20)<<a<<endl<<endl;
    13     cout<<"右对齐:"<<setiosflags(ios::right)<<setprecision(20)<<a<<endl<<endl;
    14     system("pause");
    15     return 0;
    16 }

    可以不使用#include<iomanip>的

    cout.precision()设置小数点后精确度,

    cout.width()设置宽度,

    cout.setf()设置显示格式,比如

    cout.setf(ios::left)左对齐

    cout.setf(ios::showpoint)不管是否有小数位,显示小数点

    cout.fill();不足宽度则填充,如cout.fill('0');

    如这次周赛1002,如果使用COUT在输出前要这样设置一下。

    cout.precision(6);

    cout.width(8);

    cout.setf(ios::left);

    cout.setf(ios::showpoint);

    cout.fill('0');

    仅仅cout.precision(6)和cout.setf(ios::showpoint)时,不知何原因如果为0只显示到小

    数点后5位,所以为了在最后加个0,要加上其它3项补充(部分是iomanip里的):

    long flags( ) const 返回当前的格式标志。

    long flays(long newflag) 设置格式标志为newflag,返回旧的格式标志。

    long setf(long bits) 设置指定的格式标志位,返回旧的格式标志。

    long setf(long bits,long field)将field指定的格式标志位置为bits,返回旧的格式标志

    long unsetf(long bits) 清除bits指定的格式标志位,返回旧的格式标志。

    long fill(char c) 设置填充字符,缺省条件下是空格。

    char fill( ) 返回当前填充字符。

    int precision(int val) 设置精确度为val,控制输出浮点数的有效位,返回旧值。

    int precision( ) 返回旧的精确度值。

    int width(int val) 设置显示数据的宽度(域宽),返回旧的域宽。

    int width( )只返回当前域宽,缺省宽度为0。这时插入操作能按表示数据的最小宽度显示

    数据

    dec 十进制的输入输出

    hex 十六进制的输入输出

    oct 八进制的输入输出

    例如用cout<<hex<<i<<endl; 即可以让变量i以16进制的格式输出。

    ws 提取空白字符

    flush 刷新流

    resetiosflags(long) 请除特定的格式标志位

    setiosflags(long) 设置特定的格式标志位

    setfill(char) 设置填充字符

    setprecision(int) 设置输出浮点数的精确度

    setw(int) 设置域宽格式变量

    一:标准输入函数cin 不知道说它是个函数对还是不对,它是代表标准的输入设备--键盘。他是属于流的,他的用法和流的用法是一样的。也就是:cin>>变量;

    小小的说明一下,输入多个变量可以写在一行,如:cin>>x>>y>>z; 这样写不是不允许,而是不好看,如果是不同的变量类型,那就更是没头没脑了。除了你,人家是不知道该输入什么的

    ,所以,一般在输入语句的前面,我们一般都 要做一个提示,请输入×××,让人家心里有个底,知道这个变量是做什么的。 另外,这个函数是不用带地址符号"&"的,也不用写明变量类型,千万不要跟scanf混淆。当然他就也不检查变量输入是否合法。如:

    int i; cout<<"please input a number:" cin>>i; cout<<"i="<<i<<endl;

    如果你输入的是一个字符如'a'那么他也不检查,但你输出的结果不是正确的,这要是手工进行检查。当然他也跟scanf一样,如果在循环内部输入不合法的变量值,那么也将陷入死循环。如下:

      View Code

    1 /*一个输入不合法变量陷入死循环的例子*/
     #include <iostream.h>
    int main() 
    { 
        int i; 
        while(i!=-1) 
        { 
            cout<<"i=" cin>>i; /*请输入不是一个字符如'a'试试*/ 
            cout<<endl;   
         } 
    }

    如上一个程序,如果你输入的不合法,那就将陷入死循环。

    解决的办法有一个,把cin>>i;语句移到判断循环的语句中,那么,你输入的如果是不合法的变量,他将跳出循环。 cin是用空格来分隔输入的。请看看如下的例子:

    /*一个空格分隔使输入的变量达不到希望的值*/ 
    #include <iostream.h> 
    int main() 
    { 
        char str[20]; 
        cout<<"please input a string:";
        cin>>str; /*你试着输入"hello word"*/ 
        cout<<endl<<"str="<<str; 
    }

    看得到是什么结果呢?得到的仅仅是str=hello,为什么呢?因为cin是以空格为分隔的,当你输入一个空格时,那他就认为后面的输入不属于这里了, 认为应该给后面的变量了。另外,当你输入的字符串大于分配的空间时,还会出现溢出现象。当然,还有整行输入的函数,包括空格也一起输入了,以后也会学到。

    二、标准输出函数cout 说cout是函数,也跟cin一样,不知道对不对。他代表的是标准输出设备--显示器。其实前面已经用过很多次这个函数了。我们就通过一个例子来进行格式化的输出就是了,大家就体会体会这个例子就行了,比printf灵活了很多。 首先,我们可以按16进制,8进制和10进制来显示我们的数据,如下:

      View Code

     1 /*一个按进制输出的例子*/
     2 #include<iostream.h>
     3 void main()
     4 {
     5     int x=30, y=300, z=1024;
     6     cout<<x<<' '<<y<<' '<<z<<endl; //按十进制输出
     7     cout.setf(ios::showbase | ios::uppercase); //设置基指示符输出和数值中的字母大写输出
     8     cout<<x<<' '<<y<<' '<<z<<endl;
     9     cout.unsetf(ios::showbase | ios::uppercase); //取消基指示符输出和数值中的字母大写输出
    10     cout.setf(ios::oct); //设置为八进制输出,此设置不取消一直有效
    11     cout<<x<<' '<<y<<' '<<z<<endl; //按八进制输出
    12     cout.setf(ios::showbase | ios::uppercase); //设置基指示符输出和数值中的字母大写输出
    13     cout<<x<<' '<<y<<' '<<z<<endl;
    14     cout.unsetf(ios::showbase | ios::uppercase); //取消基指示符输出和数值中的字母大写输出
    15     cout.unsetf(ios::oct); //取消八进制输出设置,恢复按十进制输出
    16     cout.setf(ios::hex); //设置为十六进制输出
    17     cout<<x<<' '<<y<<' '<<z<<endl;
    18     cout.setf(ios::showbase | ios::uppercase); //设置基指示符输出和数值中的字母大写输出
    19     cout<<x<<' '<<y<<' '<<z<<endl;
    20     cout.unsetf(ios::showbase | ios::uppercase); //取消基指示符输出和数值中的字母大写输出
    21     cout.unsetf(ios::hex); //取消十六进制输出设置,恢复按十进制输出
    22     cout<<x<<' '<<y<<' '<<z<<endl;
    23 }


     

    我们用cout.setf()设置输出的格式,用cout.unsetf()取消格式。可以看出10进制在输出的时候不管有没有设置基指示

    符ios:: showbase,都没用,8进制再输出的时候在前面加0,而16进制是在前面加0X。而对于数值中字母大写输出,只对16进制

    有用,以后我们就应该看情 况使用了。当然,我们前面已经说了,还有一种方法也可以实现格式化输出,那就是使用操纵算子,如下,

      View Code

     1 /*一个按进制输出的例子*/
     2 #include<iomanip.h>
     3 void main()
     4 {
     5     int x=30, y=300, z=1024;
     6     cout<<x<<' '<<y<<' '<<z<<endl; //按十进制输出
     7     cout<<oct<<x<<' '<<y<<' '<<z<<endl; //按八进制输出
     8     cout<<setiosflags(ios::showbase); //设置基指示符
     9     cout<<x<<' '<<y<<' '<<z<<endl; //仍按八进制输出
    10     cout<<resetiosflags(ios::showbase); //取消基指示符
    11     cout<<hex<<x<<' '<<y<<' '<<z<<endl; //按十六进制输出
    12     cout<<setiosflags(ios::showbase | ios::uppercase);
    13     //设置基指示符和数值中的字母大写输出,
    14     cout<<x<<' '<<y<<' '<<z<<endl; //仍按十六进制输出
    15     cout<<resetiosflags(ios::showbase | ios::uppercase);
    16     //取消基指示符和数值中的字母大写输出
    17     cout<<x<<' '<<y<<' '<<z<<endl; //仍按十六进制输出
    18     cout<<dec<<x<<' '<<y<<' '<<z<<endl; //按十进制输出
    19 }

    我们用以上的程序也可以输出同样的结果,可见他的灵活。我们现在输出下列一段文字:

    第一章

    1.1 什么是C语言...........................1

    1.11 C语言的历史..........................58

    第二章

    方法很多种啦,我们可以这样写:

      View Code

     1 /*一个使用填充,宽度,对齐方式的例子*/
     2 #include <iostream.h>
     3 void main()
     4 {
     5     cout<<"第一章"<<endl;
     6     cout<<" ";
     7     cout.setf(ios::left); //设置对齐方式为left
     8     cout.width(7); //设置宽度为7,不足用空格填充
     9     cout<<"1.1";
    10     cout<<"什么是C语言";
    11     cout.unsetf(ios::left); //取消对齐方式,用缺省right方式
    12     cout.fill('.'); //设置填充方式
    13     cout.width(30); //设置宽度,只对下条输出有用
    14     cout<<1<<endl;
    15     cout<<" ";
    16     cout.width(7); //设置宽度
    17     cout.setf(ios::left); //设置对齐方式为left
    18     cout.fill(' '); //设置填充,缺省为空格
    19     cout<<"1.11";
    20     cout<<"C语言的历史";
    21     cout.unsetf(ios::left); //取消对齐方式
    22     cout.fill('.');
    23     cout.width(30);
    24     cout<<58<<endl;
    25     cout.fill(' ');
    26     cout<<"第二章"<<endl;
    27 }

    我们多次设置了宽度,为的是使我们的间距能一致,也使用了对齐方式,为的是使我们的数据能对齐显示,看起来美观

    。我们还使用了填充方式。我们下面用操纵算子来实现也是可以的。

      View Code

     1 /*一个使用填充,宽度,对齐方式的例子*/
     2 #include <iomanip.h>
     3 void main()
     4 {
     5     cout<<"第一章"<<endl;
     6     cout<<" ";
     7     cout<<setiosflags(ios::left)<<setw(7); //设置宽度为7,left对齐方式
     8     cout<<"1.1";
     9     cout<<"什么是C语言";
    10     cout<<resetiosflags(ios::left); //取消对齐方式
    11     cout<<setfill('.')<<setw(30)<<1<<endl; //宽度为30,填充为'.'输出
    12     cout<<setfill(' '); //恢复填充为空格
    13     cout<<" ";
    14     cout<<setw(7)<<setiosflags(ios::left); //设置宽度为7,left对齐方式
    15     cout<<"1.11";
    16     cout<<"C语言的历史";
    17     cout<<resetiosflags(ios::left); //取消对齐方式
    18     cout<<setfill('.')<<setw(30)<<58<<endl; //宽度为30,填充为'.'输出
    19     cout<<setfill(' ')<<"第二章"<<endl;
    20 }

     我们输出了同样的效果,不过依我的性格,我更喜欢用操纵算子来进行格式化输出。最后我们看看浮点数的格式输出,

    如下例:

      View Code

     1 /*关于浮点数的格式*/
     2 #include <iostream.h>
     3 void main()
     4 {
     5     float f=2.0/3.0,f1=0.000000001,f2=-9.9;
     6     cout<<f<<' '<<f1<<' '<<f2<<endl; //正常输出
     7     cout.setf(ios::showpos); //强制在正数前加+号
     8     cout<<f<<' '<<f1<<' '<<f2<<endl;
     9     cout.unsetf(ios::showpos); //取消正数前加+号
    10     cout.setf(ios::showpoint); //强制显示小数点后的无效0
    11     cout<<f<<' '<<f1<<' '<<f2<<endl;
    12     cout.unsetf(ios::showpoint); //取消显示小数点后的无效0
    13     cout.setf(ios::scientific); //科学记数法
    14     cout<<f<<' '<<f1<<' '<<f2<<endl;
    15     cout.unsetf(ios::scientific); //取消科学记数法
    16     cout.setf(ios::fixed); //按点输出显示
    17     cout<<f<<' '<<f1<<' '<<f2<<endl;
    18     cout.unsetf(ios::fixed); //取消按点输出显示
    19     cout.precision(18); //精度为18,正常为6
    20     cout<<f<<' '<<f1<<' '<<f2<<endl;
    21     cout.precision(6); //精度恢复为6
    22 }

    同样,我们也一样能用操纵算子实现同样的功能:

      View Code

     1 /*关于浮点数的格式*/
     2 #include <iomanip.h>
     3 void main()
     4 {
     5     float f=2.0/3.0,f1=0.000000001,f2=-9.9;
     6     cout<<f<<' '<<f1<<' '<<f2<<endl; //正常输出
     7     cout<<setiosflags(ios::showpos); //强制在正数前加+号
     8     cout<<f<<' '<<f1<<' '<<f2<<endl;
     9     cout<<resetiosflags(ios::showpos); //取消正数前加+号
    10     cout<<setiosflags(ios::showpoint); //强制显示小数点后的无效0
    11     cout<<f<<' '<<f1<<' '<<f2<<endl;
    12     cout<<resetiosflags(ios::showpoint); //取消显示小数点后的无效0
    13     cout<<setiosflags(ios::scientific); //科学记数法
    14     cout<<f<<' '<<f1<<' '<<f2<<endl;
    15     cout<<resetiosflags(ios::scientific); //取消科学记数法
    16     cout<<setiosflags(ios::fixed); //按点输出显示
    17     cout<<f<<' '<<f1<<' '<<f2<<endl;
    18     cout<<resetiosflags(ios::fixed); //取消按点输出显示
    19     cout<<setprecision(18); //精度为18,正常为6
    20     cout<<f<<' '<<f1<<' '<<f2<<endl;
    21     cout<<setprecision(6); //精度恢复为6
    22 }

    在c/c++系统中除了标准的输入输出外,还提供了更多的输入函数。

    这写函数主要有getch(),getche(), getchar (),cin.get(),putch(),putchar(),cout.put(),gets(),cin.getline(),puts()。

    另外 还有些为了让缓冲区不影响程序的正确操作的缓冲去的操作,如:cin.putback(),fflush(stdin),cout.flush().我们 做一下简单的说明。

    1、getch()和getche(),非缓冲式输入,从键盘读入一个字符。getch()读入字符不显示。有conio.h支持。

     2、cin.get(),getchar(),缓冲式输入,从键盘读入一个字符,并显示。getchar()由stdio.h支持,cin.get()由iostream.h支持。

    3、putch()和putchar(),非缓冲式输出,输出一个字符到显示器。putch()由conio.h支持,putchar()由stdio.h支持。

     4、cout.put(),缓冲式输出,输出一个字符到显示器。由iostream.h支持。

     5、gets()和cin.geline(),缓冲式输入,读入一字符串(包括空格,不包括最后的回车),gets()由stdio.h支持,cin.getline()由iostream.h支持。

     6、puts(),非缓冲输出,输出一个字符串,由stdio.h支持。

    7、cin.putback(),把一个字符送回输入缓冲区。

    8、fflush(stdin),清除输入缓冲区操作。无法清除cin.get()等带来的操作。

    9、cout.flush(),清楚输出缓冲区。 在这里我们稍微说一下输入/输出缓冲区,这是为了减少程序访问io带来中断而设的一段空间。当程序满足某个刷新条件时,那就将清理缓冲区。具体条件为:

    1、输入缓冲区 a,程序要求输入时,按下了回车键。 b,遇到程序结束。 c,遇到下一条输入语句。 d,遇到清除缓冲区操作 e,缓冲区溢出 2、输出缓冲区 a,输出缓冲区溢出 b,遇到下一条输入语句 c,使用刷新缓冲区迫使清除

    例2 用控制符控制输出格式

      View Code

     1 #include <iostream>
     2 #include <iomanip> //不要忘记包含此头文件
     3 using namespace std;
     4 int main()
     5 {  int a;
     6    cout<<"input a:";
     7    cin>>a;
     8    cout<<"dec:"<<dec<<a<<endl; //以上进制形式输出整数
     9    cout<<"hex:"<<hex<<a<<endl; //以十六进制形式输出整数a
    10    cout<<"oct:"<<setbase(8)<<a<<endl;//以八进制形式输出整数a
    11    char *pt="China";         //pt指向字符串”China”
    12    cout<<setw(10)<<pt<<endl; //指定域宽为10,输出字符串
    13    cout<<setfill('*')<<setw(10)<<pt<<endl;//指定域宽10,输出字符串,空白处以“*”填充
    14    double pi=22.0/7.0; //计算pi值
    15    cout<<setiosflags(ios::scientific)<<setprecision(8);//按指数形式输出,8位小数
    16    cout<<"pi="<<pi<<endl; //输出pi值
    17    cout<<"pi="<<setprecision(4)<<pi<<endl;//改为4位小数
    18    cout<<"pi="<<setiosflags(ios::fixed)<<pi<<endl;//改为小数形式输出
    19    return 0; 
    20 }

    运行结果如下:   

    inputa:34 (输入a的值)   

     dec:34 (十进制形式)   

    hex:22 (十六进制形)   

    oct:42 (八进制形式)   

    China (域宽为10)   

    ***** China (域宽为10,空白处以'*'填充)   

    pi=3.14285714e+00 (指数形式输出,8位小数)   

     pi=3.1429e+00) (指数形式输小,4位小数)   

     pi=3.143 (小数形式输出,梢度仍为4)

    展开全文
  • C++输出格式控制大全

    千次阅读 多人点赞 2019-06-29 11:04:44
    有时希望按照一定的格式进行输出,如按十六进制输出整数,输出...C++中的 cout 对象则使用流操作算子(你也可以叫做格式控制符)或者成员函数进行控制。 使用流操作算子 C++ 中常用的输出流操纵算子如表 1 所...

    有时希望按照一定的格式进行输出,如按十六进制输出整数,输出浮点数时保留小数点后面两位,输出整数时按 6 个数字的宽度输出,宽度不足时左边补 0,等等。C语言中的 printf() 函数使用以%开头的格式控制符,例如 %X、%.2f、%6d 等;C++ 中的 cout 对象则使用流操作算子(你也可以叫做格式控制符)或者成员函数进行控制。

    使用流操作算子

    C++ 中常用的输出流操纵算子如表 1 所示,它们都是在头文件 iomanip 中定义的;要使用这些流操纵算子,必须包含该头文件。

    注意:“流操纵算子”一栏中的星号*不是算子的一部分,星号表示在没有使用任何算子的情况下,就等效于使用了该算子。例如,在默认情况下,整数是用十进制形式输出的,等效于使用了 dec 算子。

    表1:C++ 流操纵算子
    流操纵算子作  用
    *dec以十进制形式输出整数常用
    hex以十六进制形式输出整数
    oct以八进制形式输出整数
    fixed以普通小数形式输出浮点数
    scientific以科学计数法形式输出浮点数
    left左对齐,即在宽度不足时将填充字符添加到右边
    *right右对齐,即在宽度不足时将填充字符添加到左边
    setbase(b)设置输出整数时的进制,b=8、10 或 16
    setw(w)指定输出宽度为 w 个字符,或输人字符串时读入 w 个字符
    setfill(c)在指定输出宽度的情况下,输出的宽度不足时用字符 c 填充(默认情况是用空格填充)
    setprecision(n)设置输出浮点数的精度为 n。

    在使用非 fixed 且非 scientific 方式输出的情况下,n 即为有效数字最多的位数,如果有效数字位数超过 n,则小数部分四舍五人,或自动变为科学计 数法输出并保留一共 n 位有效数字。

    在使用 fixed 方式和 scientific 方式输出的情况下,n 是小数点后面应保留的位数。
    setiosflags(flag)将某个输出格式标志置为 1
    resetiosflags(flag)将某个输出格式标志置为 0
    boolapha把 true 和 false 输出为字符串不常用
    *noboolalpha把 true 和 false 输出为 0、1
    showbase输出表示数值的进制的前缀
    *noshowbase不输出表示数值的进制.的前缀
    showpoint总是输出小数点
    *noshowpoint只有当小数部分存在时才显示小数点
    showpos在非负数值中显示 +
    *noshowpos在非负数值中不显示 +
    *skipws输入时跳过空白字符
    noskipws输入时不跳过空白字符
    uppercase十六进制数中使用 A~E。若输出前缀,则前缀输出 0X,科学计数法中输出 E
    *nouppercase十六进制数中使用 a~e。若输出前缀,则前缀输出 0x,科学计数法中输出 e。
    internal数值的符号(正负号)在指定宽度内左对齐,数值右对 齐,中间由填充字符填充。

    流操作算子的使用方法

    使用这些算子的方法是将算子用 << 和 cout 连用。例如:

     
    1. cout << hex << 12 << "," << 24;

    这条语句的作用是指定以十六进制形式输出后面两个数,因此输出结果是:
    c, 18

    setiosflags() 算子

    setiosflags() 算子实际上是一个库函数,它以一些标志作为参数,这些标志可以是在 iostream 头文件中定义的以下几种取值,它们的含义和同名算子一样。

    表2:setiosflags() 可以使用的标志及其说明
    标 志作 用
    ios::left输出数据在本域宽范围内向左对齐
    ios::right输出数据在本域宽范围内向右对齐
    ios::internal数值的符号位在域宽内左对齐,数值右对齐,中间由填充字符填充
    ios::dec设置整数的基数为 10
    ios::oct设置整数的基数为 8
    ios::hex设置整数的基数为 16
    ios::showbase强制输出整数的基数(八进制数以 0 开头,十六进制数以 0x 打头)
    ios::showpoint强制输出浮点数的小点和尾数 0
    ios::uppercase在以科学记数法格式 E 和以十六进制输出字母时以大写表示
    ios::showpos对正数显示“+”号
    ios::scientific浮点数以科学记数法格式输出
    ios::fixed浮点数以定点格式(小数形式)输出
    ios::unitbuf每次输出之后刷新所有的流
    ios::stdio每次输出之后清除 stdout, stderr


    这些标志实际上都是仅有某比特位为 1,而其他比特位都为 0 的整数。

    多个标志可以用|运算符连接,表示同时设置。例如:

     
    1. cout << setiosflags(ios::scientific|ios::showpos) << 12.34;

    输出结果是:
    +1.234000e+001

    如果两个相互矛盾的标志同时被设置,如先设置 setiosflags(ios::fixed),然后又设置 setiosflags(ios::scientific),那么结果可能就是两个标志都不起作用。因此,在设置了某标志,又要设置其他与之矛盾的标志时,就应该用 resetiosflags 清除原先的标志。例如下面三条语句:

     
    1. cout << setiosflags(ios::fixed) << 12.34 << endl;
    2. cout << resetiosflags(ios::fixed) << setiosflags(ios::scientific | ios::showpos) << 12.34 << endl;
    3. cout << resetiosflags(ios::showpos) << 12.34 << endl; //清除要输出正号的标志

    输出结果是:
    12.340000
    +1.234000e+001
    1.234000e+001

    综合示例

    关于流操纵算子的使用,来看下面的程序。

     
    1. #include <iostream>
    2. #include <iomanip>
    3. using namespace std;
    4. int main()
    5. {
    6. int n = 141;
    7. //1) 分别以十六进制、十进制、八进制先后输出 n
    8. cout << "1)" << hex << n << " " << dec << n << " " << oct << n << endl;
    9. double x = 1234567.89, y = 12.34567;
    10. //2)保留5位有效数字
    11. cout << "2)" << setprecision(5) << x << " " << y << " " << endl;
    12. //3)保留小数点后面5位
    13. cout << "3)" << fixed << setprecision(5) << x << " " << y << endl;
    14. //4)科学计数法输出,且保留小数点后面5位
    15. cout << "4)" << scientific << setprecision(5) << x << " " << y << endl;
    16. //5)非负数显示正号,输出宽度为12字符,宽度不足则用 * 填补
    17. cout << "5)" << showpos << fixed << setw(12) << setfill('*') << 12.1 << endl;
    18. //6)非负数不显示正号,输出宽度为12字符,宽度不足则右边用填充字符填充
    19. cout << "6)" << noshowpos << setw(12) << left << 12.1 << endl;
    20. //7)输出宽度为 12 字符,宽度不足则左边用填充字符填充
    21. cout << "7)" << setw(12) << right << 12.1 << endl;
    22. //8)宽度不足时,负号和数值分列左右,中间用填充字符填充
    23. cout << "8)" << setw(12) << internal << -12.1 << endl;
    24. cout << "9)" << 12.1 << endl;
    25. return 0;
    26. }

    程序的输出结果是:
    1)8d 141 215
    2)1.2346e+06 12.346
    3)1234567.89000 12.34567
    4)1.23457e+06 1.23457e+01
    5)***+12.10000
    6)12.10000****
    7)****12.10000
    8)-***12.10000
    9)12.10000

    需要注意的是,setw() 算子所起的作用是一次性的,即只影响下一次输出。每次需要指定输出宽度时都要使用 setw()。因此可以看到,第 9) 行的输出因为没有使用 setw(),输出的宽度就不再是前面指定的 12 个字符。

    在读入字符串时,setw() 还能影响 cin 的行为。例如下面的程序:

     
    1. #include <iostream>
    2. #include <iomanip>
    3. using namespace std;
    4. int main()
    5. {
    6. string s1, s2;
    7. cin >> setw(4) >> s1 >> setw(3) >> s2;
    8. cout << s1 << "," << s2 << endl;
    9. return 0;
    10. }

    输入:
    1234567890↙

    程序的输出结果是:
    1234,567

    说明setw(4)使得读入 s1 时,只读入 4 个字符,其后的setw(3)使得读入 s2 时只读入 3 个字符。

    setw() 用于 cin 时,同样只影响下一次的输入。

    思考题:setw() 究竟是如何实现的,以至于能和 cout 连用来指定输出宽度?自行查看编译器所带的 iomanip 头文件,然后写一个功能和 setw() 完全相同的 mysetw()。

    调用cout的成员函数

    ostream 类有一些成员函数,通过 cout 调用它们也能用于控制输出的格式,其作用和流操纵算子相同,如表 3 所示。
     

    表3:ostream 类的成员函数
    成员函数作用相同的流操纵算子说明
    precision(n)setprecision(n)设置输出浮点数的精度为 n。
    width(w)setw(w)指定输出宽度为 w 个字符。
    fill(c)setfill (c)在指定输出宽度的情况下,输出的宽度不足时用字符 c 填充(默认情况是用空格填充)。
    setf(flag)setiosflags(flag)将某个输出格式标志置为 1。
    unsetf(flag)resetiosflags(flag)将某个输出格式标志置为 0。

     

    setf 和 unsetf 函数用到的flag,与 setiosflags 和 resetiosflags 用到的完全相同。

    这些成员函数的用法十分简单。例如下面的三行程序:

     
    1. cout.setf(ios::scientific);
    2. cout.precision(8);
    3. cout << 12.23 << endl;

    输出结果是:
    1.22300000e+001

    展开全文
  • c++输入输出格式

    2021-12-20 19:59:05
    //常量必须用dec、hex和oct来控制必须按10进制、16进制或8进制形式输出。 //由于这三个标识符(dec/hex/oct)已经被定义为系统常量,注意不能在定义为其他变量名使用 cout<<" 8进制: "; cout<<oct&...

    1. 输入和输出8进制,10进制,16进制数

    #include<iostream>
    using namespace std;
    int main()
    {
    	int number=25;
    	//常量必须用dec、hex和oct来控制必须按10进制、16进制或8进制形式输出。
    	//由于这三个标识符(dec/hex/oct)已经被定义为系统常量,注意不能在定义为其他变量名使用
    	cout<<" 8进制: ";
    	cout<<oct<<number<<endl;
    	cout<<"10进制: ";
    	cout<<dec<<number<<endl;
    	cout<<"16进制: ";
    	cout<<hex<<number<<endl;
    	cout<<dec;  // 在cin或cout中指明数制后,该数制将一直有效,所以需要重新恢复输出10进制
    	return 0;
    }
    
    //注意事项:
    //1. cin 输入后面指明 数制 时键盘一定要按照进制形式输入。
    //2. 使用不带.h的头文件<iostream>时,必须在cin中指明数制,否则从键盘输入时,不认八进制和十六进制数开头的0和0x标志。指明后可省略0和0x标志。
    //3. 进制控制只适用于整型变量,不适用于实型和字符型变量。
    //4. 输入数据的格式、个数和类型必须与cin中的变量一一对应,否则不仅使输入数据错误,而且影响后面其他数据的正确输入。
    //5. 在cin或cout中指明数制后,该数制将一直有效,直到重新指明使用其他数制。
    #include<iostream>
    using namespace std;
    int main()
    {
    	int octonary,decimalism,hexadecimal; // 代表8,10,16进制
    	cout<<"输入8进制: ";
    	cin>>oct>>octonary;    // 键盘输入的是八进制形式   032
    
    	cout<<"输入10进制: ";
    	cin>>dec>>decimalism;  // 键盘输入的是十进制形式   17
    
    	cout<<"输入16进制: ";
    	cin>>hex>>hexadecimal; // 键盘输入的是十六进制形式 0x3f
    	
    	cin>>dec;    在cin或cout中指明数制后,该数制将一直有效,所以需要重新恢复输入10进制
    	return 0;
    }
    

    2. 数据间隔

    #include <iostream>   //不要用iostream.h ,会出现好多问题
    
    #include <iomanip>    // io 流控制头文件, 主要是一些操纵用法如setw(int n),setprecision(int n) ,setbase(int   n),setfill(char c)的.
    
    setw

    常用设置方法:输出空格符或回车换行符。
    指定数据输出宽度:用C++提供的函数setw()指定输出数据项的宽度。setw()括号中通常给出一个正整数值,用于限定紧跟其后的一个数据项的输出宽度。如:setw(8)表示紧跟其后的数据项的输出占8个字符宽度。当设置宽度小于后面数值宽度时按照原数值宽度大小打印。

    ▲setw(n)用法: 通俗地讲就是预设宽度

    #include<iostream>
    #include<iomanip>  
    using namespace std;
    int main()
    {
    	cout<<"*";
    	cout<<setw(5)<<666;
    	cout<<"*"<<endl;     //   结果是:*  666*  即666前面由两个空格,共5个宽度
    
    	cout<<"*";
    	cout<<setw(5)<<666<<setw(6)<<999;   
    	cout<<"*"<<endl;    //结果是:*  666   999*
    
    	cout<<setw(2)<<12345<<endl;  //结果是:12345
    	return 0;
    }
    
    setfill

    ▲setfill(char c) 用法 : 就是在预设宽度中如果已存在没用完的宽度大小,则用设置的字符c填充

    #include<iostream>
    #include<iomanip>  
    using namespace std;
    int main()
    {
    	cout<<setfill('#')<<setw(10)<<12345<<endl;  // 结果:#####12345
    	cout<<setfill('@')<<setw(2)<<2555<<endl;    // 结果:2555 
    	return 0; 
    }
    
    setbase

    ▲setbase(int n) : 将数字转换为 n 进制.

    #include<iostream>
    #include<iomanip>  
    using namespace std;
    int main()
    {
        cout<<setbase(8)<<setw(5)<<255<<endl;     // (空格)(空格)377
        cout<<setbase(10)<<setw(5)<<255<<endl;    // (空格)(空格) 255
        cout<<setbase(16)<<255<<endl;			  // (空格)(空格) ff
    	return 0; 
    }
    
    setprecision

    使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。
    如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。
    如果与setiosnags(ios::scientific)合用, 可以控制指数表示法的小数位数。setiosflags(ios::scientific)是用指数方式表示实数。

    在用浮点表示的输出中,setprecision(n)表示有效位数。
    第1行输出数值之前没有设置有效位数,所以用流的有效位数默认设置值6:第2个输出设置了有效位数0,C++最小的有效位数为1,所以作为有效位数设置为1来看待:第3~6行输出按设置的有效位数输出。
    在用定点表示的输出中,setprecision(n)表示小数位数。
    第7行输出是与setiosflags(ios::fixed)合用。所以setprecision(8)设置的是小数点后面的位数,而非全部数字个数。
    在用指数形式输出时,setprecision(n)表示小数位数。
    第8行输出用setiosflags(ios::scientific)来表示指数表示的输出形式。其有效位数沿用上次的设置值8。
    ▲ setprecision用法

    #include<iostream>
    #include<iomanip>  
    using namespace std;
    int main()
    {
    	double amount = 22.0/7;
    
        cout << amount << endl;									//结果是:3.14286
    
        cout << setprecision(0) << amount << endl               //结果是:3.14286
    															
             << setprecision(1) << amount << endl				//结果是:3
    														
             << setprecision(2) << amount << endl				//结果是:3.1
    
             << setprecision(3) << amount << endl				//结果是:3.14
    
             << setprecision(4) << amount << endl;				//结果是:3.143
    
        cout << setiosflags(ios::fixed);						
    
        cout << setprecision(8) << amount << endl;				//结果是:3.14285714
    
        cout << setiosflags(ios::scientific) << amount <<endl;  //结果是:0x1.92492492p+1
    
        //cout <<setprecision(6); //重新设置成原默认设置
    
    	return 0; 
    }
    

    3. 其他参考

    1.使用控制符控制输出格式
    控制符 作用 
    dec 设置整数的基数为10 
    hex 设置整数的基数为16 
    oct 设置整数的基数为8 
    setbase(n) 设置整数的基数为n(n只能是16,10,8之一) 
    setfill(c) 设置填充字符c,c可以是字符常量或字符变量 
    setprecision(n) 设置实数的精度为n位.在以一般十进制小数形式输出时,n代表有效数字.在以fixed(固定小数位数)形式和scientific(指数)形式输出时,n为小数位数.
    setw(n) 设置字段宽度为n位.
    setiosflags(ios::fixed) 设置浮点数以固定的小数位数显示.
    setiosflags(ios::scientific) 设置浮点数以科学计数法(即指数形式)显示.
    setiosflags(ios::left) 输出数据左对齐.
    setiosflags(ios::right) 输出数据右对齐.
    setiosflags(ios::shipws) 忽略前导的空格.
    setiosflags(ios::uppercase) 在以科学计数法输出E和十六进制输出字母X时,以大写表示.
    setiosflags(ios::showpos) 输出正数时,给出“+”号.
    resetiosflags 终止已设置的输出格式状态,在括号中应指定内容.
    2.用流对象的成员控制输出格式
    流成员函数 与之作用相同的控制符 作用 
    precision(n) setprecision(n) 设置实数的精度为n位.
    width(n) setw(n) 设置字段宽度为n位.
    fill(c) setfill(c) 设置填充字符c.
    setf( ) setiosflags( ) 设置输出格式状态,括号中应给出格式状态,内容与控制符setiosflags括号中内容相同.
    ubsetf( ) resetiosflags( ) 终止已设置的输出格式状态.
    cout.width(10); 
    cout.setf(ios::hex);
    3.设置格式状态的格式标志
    格式标志 作用 
    ios::left 输出数据在本域宽范围内左对齐 
    ios::right 输出数据在本域宽范围内右对齐 
    ios::internal 数值的符号位在域宽内左对齐,数值右对齐,中间由填充字符填充 
    ios::dec 设置整数的基数为10 
    ios::oct 设置整数的基数为8 
    ios::hex 设置整数的基数为16 
    ios::showbase 强制输出整数的基数(八进制以0打头,十六进制以0x打头) 
    ios::showpoint 强制输出浮点数的小点和尾数0 
    ios::uppercase 在以科学计数法输出E和十六进制输出字母X时,以大写表示 
    ios::showpos 输出正数时,给出“+”号.
    ios::scientific 设置浮点数以科学计数法(即指数形式)显示 
    ios::fixed 设置浮点数以固定的小数位数显示 
    ios::unitbuf 每次输出后刷新所有流 
    ios::stdio 每次输出后清除stdout,stderr 
    
    展开全文
  • printf(“输出控制符”,输出参数); 输出控制符 控制符 说明 %d 按十进制整型数据的实际长度输出 %nd n 为指定的输出字段的宽度。如果位数小于 n,则左端补以空格,若大于 n,则按实际位数输出。 %c ...
  • 错误【单选题】在c语言中,输出一个整型变量用的下面哪一种格式控制符A.%cB.%dC.%f【单选题】以下各项,不属于printf()函数的格式控制符的是_______。A.%cB.%dC.%fD.%m【单选题】使用下列哪个格式控制符可设置转换十六...
  • C++ cout格式输出(超级详细)

    千次阅读 2022-02-14 15:22:11
    对于学过 C 语言的读者应该知道,当使用 printf() 函数输出数据时,可以通过设定一些合理的格式控制符,来达到以指定格式输出数据的目的。例如 %.2f 表示输出浮点数时保留 2 位小数,%#X 表示以十六进制、带 0X 前缀...
  • C++语言之输入输出深入介绍,包括:C++基本的输入输出、C++如何输入含空格的字符串、C++输入输出格式控制
  • scanf("格式控制",变量地址); scanf("%d",&n); 常见数据类型变量的scanf格式 int %d long long %lld float %f char %c double %lf 字符串(char数组) %s 像13:45:20可以这样输入 scanf("%d:...
  • C++各种输出模式

    千次阅读 2022-04-04 17:28:02
    C++各种输出模式介绍C++语言中的流I/O类库各种输出方式cout语句printf函数输出格式控制解决输出中文乱码的问题后续 介绍 在用户和计算机进行交互的过程中,数据输入和数据输出是必不可少的操作过程,计算机需要通过...
  • 有时希望按照一定的格式进行输出,如按十六进制输出整数,...C++ 中的 cout 对象则使用流操作算子(你也可以叫做格式控制符)或者成员函数进行控制。注意:“流操纵算子”一栏中的星号*不是算子的一部分,星号表示在没...
  • C++输出格式控制

    千次阅读 多人点赞 2018-08-11 16:12:31
    输入和输出并不是C++语言中的正式组成成分。C和C++本身都没有为输入和输出提供专门的语句结构。输入输出不是由C++本身定义的,而是在编译系统提供的I/O库中定义的。尽管cin和cout不是C++本身提供的语句,但是在不致...
  • (转)c++ 控制符

    2019-04-12 20:08:21
    dec 设置整数的基数为10 hex 设置整数的基数为16 oct 设置整数的基数为8 setbase(n) 设置整数的基数为n(n只能是16,...在以一般十进制小数形式输出时,n代表有效数字。在以fixed(固定小数位数)形式和scientif...
  • C++输入输出控制符 读者学习C语言的过程中,应该遇到过这个问题,需要控制输出小数点位数,在C语言中是这样来控制的 //输出小数点后两位 int pi=3.1415; printf("%3.2f",pi);//%m.nf中m是值输出数据的总宽度,n是...
  • Aaron,一只想要在C++里为所欲为的博主,之前博主在刷题的时候遇到一些格式控制符的问题,感觉这东西不整理一下还真是挺乱的,所以接机查阅资料,疯狂整理,给大家出一期整理有关输入输出控制格式符的博文,建议收藏...
  • 1.C 语言格式控制符/占位符 2.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 网络有这么一个段子: 如果说一个男生没对象 —单身狗; 如果说一个女生没对象 — 狗不理; 1.C ...
  • 【判断题】puts不需要格式控制符,且自动换行。()A.正确B.错误【单选题】以下各项,不属于printf()函数的格式控制符的是_______。A.%cB.%dC.%fD.%m【单选题】使用下列哪个格式控制符可设置转换十六进制为十进制( )A....
  • c++前导零
  • 前言 我们有时希望数据按照一定的格式进行输出,如按十六进制输出整数,输出浮点数时保留...C++ 中的 cout 对象则使用流操作算子(你也可以叫做格式控制符)或者成员函数进行控制。 使用流操作算子 注意:“流...
  • c++输出格式控制

    千次阅读 2017-04-03 21:51:11
    C++输出格式控制 setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6,所以不管数据是多少,都只输出六位。如果setprecision(n)与setiosflags(ios::fixed)或者setiosflags(ios_base...
  • 未使用头文件iomanip, 设置输出宽度,精度
  • C和C++ 常用格式输出方式

    千次阅读 2021-07-03 20:44:57
    调试的时候,格式化输出友好的话,可以有效的提高调试的效率,不然眼睛盯着都难受也找不到需要的参数在哪。。。。 因此,在这里整理一下,各种格式化...其中格式控制字符串用于指定输出格式,格式字符串是以%开头的字
  • C++输入输出格式控制
  • 这时如果能把相关字符串用十六进制的形式打印出来,例如,"abc" 输出成 "\\x61\\x62\\x63" 这对于 i18n 的除错来说是很有帮助的。Python 里面,只需要使用repr()函数就行了。可在 C++ 中如何做到这点呢?下面是用 ...
  • C 输出格式控制

    千次阅读 2021-05-23 12:42:02
    d,遇到清除缓冲区操作 e,缓冲区溢出 2、输出缓冲区 a,输出缓冲区溢出 b,遇到下一条输入语句 c,使用刷新缓冲区迫使清除 例2 用控制符控制输出格式 View Code 1 #include 2 #include //不要忘记包含此头文件3 ...
  • 原博主博客地址:http://blog.csdn.net/qq21497936 ... ...C++STL开发温习与总结(六): ...6.C++语言输入/输出流定义之输入/输出格式控制  本章开始正式进入标准库的温习。 1.C++语言输入/输出流
  • C++输入输出

    千次阅读 2022-03-09 21:23:52
    C++输入输出流 一、关于C++ IO库 1.引言 ​ c++使用类型安全的IO流操作,不同类型的IO流操作都是重载的,没有定义过IO功能的类型不具备IO操作能力。 ​ 通过修改 和扩充,C++既可以为标准数据类型的IO,也能用于...
  • 详解C++ cout格式输出完全攻略

    千次阅读 2021-05-22 11:06:12
    写算法题的时候突然发现自己忘记基本的C++:cout格式化输出了,赶紧拉出以前的C++学习笔记重新看一看。部分内容来自教程:C语言中文网...C语言中的 printf() 函数使用以%开头的格式控制符,例如 %X、%.2f、%6d 等;C...
  • c++ 总结之 cout输出

    千次阅读 2022-08-09 22:44:56
    cout知识总结,学习cout的输出方法,学习各种格式输出的法一法二。修改显示时的布尔类型、位宽、精度、浮点数模式、对齐方式、前缀、进制等等的零碎知识已经帮你整理好啦。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,356
精华内容 20,142
关键字:

c++语言输出格式控制符