永利集团304com:格式化输出调整,编制程序第二讲

提及Hello World,照旧以Hello World来开篇吧,同样依然出口“Hello World”

printf()函数是格式化输出函数,日常用来向职业输出设备按规定格式输出音讯。在编写程序时平常会用到此函数。printf()函数的调用格式为:


printf(“<格式化字符串>”, <参量表>);

#include

个中格式化字符串包含两片段内容:

int main()

  • 局部是健康字符,这么些字符将按原样输出。
  • 另一部分是格式化规定字符,以”%”开头,后跟三个或多少个规定字符,用来规定输出内容格式。 

{

参量表是索要输出的一层层参数,其个数必得与格式化字符串所验证的输出参数个数同样多,各参数之间用“,”分开,且顺序依次对应,不然将会并发奇怪的荒唐。

char name[] = “Hello World”;

格式化字符串

格式化字符串的格式是:
%[标志][输出最小宽度][.精度][长度]格式字符

 “%-md” :左对齐,若m比其实少时,按其实出口。

“%m.ns”:输出m位,取字符串(左起)n位,左补空格,当n>m or
m省略时m=n。举例 “%7.2s”   输入CHINA ,输出”     CH”。

“%m.nf”:输出浮点数,m为宽度,n为小数点侧边数位比如”%3.1f”,输入3852.99,输出3853.0 

长度:为h短整形量,l为长整形量。

printf(“%s.n”,name);

转变说明符

  • %a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)
  • %c 字符
  • %d 有标记十进制整数
  • %f 浮点数(包括float和doulbe)
  • %e(%E) 浮点数指数输出[e-(E-)记数法]
  • %g(%G) 浮点数不显无意义的零”0″
  • %i 有暗记十进制整数(与%d同样)
  • %u 无符号十进制整数
  • %o 八进制整数 e.g. 0123
  • %x(%X) 十六进制整数0f(0F) e.g. 0x1234
  • %p 指针
  • %s 字符串
  • %% “%”

getchar();

标志

  • 左对齐:”-”   e.g.   “%-20s”
  • 右对齐:”+”  e.g.   “%+20s”
  • 空格:若符号为正,则显得空格,负则展现”-”   e.g.   “%  6.2f”      
  • #:对c,s,d,u类无影响;对o类,在出口时加前缀o;对x类,在输出时加前缀0x;对e,g,f
    类当结果有小数时才给出小数点。

return 0;

}


永利集团304com 1


假设大家留神的话应该见到那一个程序和上一讲的有所差别,在首先讲里我们就只用了一句话就把该兑现形成,而这里大家浪费这么多笔墨,恐怕有人会问是或不是太浪费空间了些?假诺你早就初阶那样想了,那么继续往下看。

char name[] = “Hello
World”;这里大家率先次利用了种类变量,char是字符类型,name是二个char类型变量,何况是三个数组变量(g关于数组和指针今后会细说),”=”不是等号,那是赋值符号,“Hello
world”是赋给char类型变量name[]的字符,这一句话能够这里来精通:

将”Hello
World”贮存在字符型的name[]永利集团304com,变量中(以往凡是出现此类的表达式都足以如此清楚,不管是int照旧float照旧何等……那几个种类在接下去会详细介绍,毕竟C/C++不可紧缺变量)。

printf(“%s.n”,name);那是这一讲的要害。下边就至关心珍视要说说那个函数的用法:

printf是八个C语言里最为重大的五个函数,这三个函数让大家能够和程序通讯,所以那正是本身在说数据类型在此之前要先说那七个函数的来由,上面我们共同来研讨那八个函数。

printf()是个格式化输出函数,他的原型看起来像这么:int printf(const char
*format [,argument]…
);从原型里面能够看来format是那几个函数的机要,上面我们来打通一下format看看她到底有怎么着可用的格式。

回去大家的程序里面,再来看看printf(“%s.n”,name),在那之中%s就是以此format,意在告知编写翻译器需求打字与印刷三个字符串,要是只想打字与印刷二个字符咋办呢?我们无妨将printf()改成这么看看会如何:

printf(“%c %s.n”,’C’,name);

运营一下尝试:

永利集团304com 2

你是还是不是想说,本来输入的正是C嘛,输出当然会是C咯,好呢,那大家来换个点子看看,将方面包车型客车代码换来这么再看看输出是何许:

printf(“%c %s.n”,66,name);

笔者们今后尚无输入字符了,而是输入二个偏分头,大家再来看看会是怎么着结果:

永利集团304com 3

我们是或不是认为古怪吗?为啥输出的是贰个数字,怎么就改为多少个字符了啊?B是怎么冒出来的?初次接触C/C++的同桌恐怕会略微不清楚了,可是碍于篇幅的主题材料,这一个主题材料临时就不探究了,等学到前边我们也就懂了,其实那正是三个ASCII的问题。

到那边也许大家也清楚了二个主题素材,那正是只要想要打字与印刷出一个字符那么就得用%c来格式化输出。可以吗,上边小编输入的是66,有人是还是不是在想怎么技能够让她输出66吧?decimalism那不啻好疑似十进制,想想是否足以用%d来格式化十进制输出呢?我们不要紧尝试吧

printf(“%d %s.n”,66,name);

运营一向下探底访结果是怎么:

永利集团304com 4

真的输出了66,既然%d是十进制的格式化,那么%x会不会正是十六进制%o正是八进制了呢?我们可以自动尝试一下,答案正是如此的。

下边计算一下以此format的调换符:


转移说明 输出


%a 浮点数,十六进制数字和 p- P-记数法


%c 二个字符


%d 有暗记十进制整数


发表评论

电子邮件地址不会被公开。 必填项已用*标注