在C语言里,printf怎么输出2个变量?

在C语言里,printf怎么输出2个变量?,第1张

输出两个变量的方法和输出一个的方法类似,printf

("sum=%d/n",sum);表示输出sum,而输出sum和sum1只需要改成printf

("sum=%d,sum1=%d/n",sum,sum1);。其中%d表示输出格式为十进制有符号整数。

printf()函数的调用格式为:printf("<格式化字符串>",

<参量表>);

其中格式化字符串包括两部分内容:

一部分是正常字符,

这些字符将按原样输出;

另一部分是格式化规定字符,

以"%"开始,

后跟一个或几个规定字符,用来确定输出内容格式。参量表是需要输出的一系列参数,

其个数必须与格式化字符串所说明的输出。

扩展资料

C语言中printf输出的注意事项:

1、使用printf输出宽字符时,需要使用setlocale指定本地化信息并同时指明当前代码的编码方式。除了使用%S,还可以使用%ls。

2、%a和%A是C99引入的格式化类型,采用十六进制p计数法输出浮点数。p计数法类似E科学计数法,但不同。数以0x开头,然后是16进制浮点数部分,接着是p后面是以

2为底的阶码。

3、格式控制字符串除了指明输出的数据类型,还可以包含一些其它的可选的格式说明,依序有

flags,

width,

precision

and

length。

搜狗百科——printf()

printf函数的9个过程是:

1call指令;

2EBP出栈;

3函数参数压栈;

4收回局部变量空间;

5在栈上保留局部变量空间;

6EBP压栈;

7函数参数出栈;

8ret指令;

9打印输出字符串。

printf()函数的调用格式为: printf("<格式化字符串>", <参量表>);

其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始,后跟一个或几个规定字符, 用来确定输出内容格式。

参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应, 否则将会出现意想不到的错误。

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

%E或者%e指用科学表示格式的浮点数 

printf("第%d次挂科!\n",num); //就是以有符号10进制整数形式输出num这个数,num可以变化其它形式如下:%d%f%c都是printf输出时,规定数据输出方式的。

%d 是以十进制整型的格式输出

%c 是以单个字符的格式输出

%f 是以单精度型的格式输出

%e 是以指数的形式输出

扩展资料:

格式占位符(%)是在C/C++语言中格式输入函数,如scanf、printf等函数中使用。其意义就是起到格式占位的意思,表示在该位置有输入或者输出。

%d,%i代表整数,%f-浮点,%s,字符串,%c,char %p 指针,%fL 长long,%e科学计数,%g 小数或科学计数。

C语言中的格式占位符:

%a,%A 读入一个浮点值(仅C99有效)

%c 读入一个字符

%d 读入十进制整数

%i 读入十进制,八进制,十六进制整数

%o 读入八进制整数

-占位符

c语言中, %d\n 是printf()函数的格式控制,%d是printf()函数的格式声明,表示结果只能输出十进制整数,\n是普通字符中的换行符,表示输出后控制移到下一行的开头。

c语言中printf()函数的一般格式printf("<格式化字符串>", <参量表>)。格式化字符串由格式控制、和输出表列两部分组成,其中格式控制包含格式声明和普通字符。

扩展资料:

规定符

%d 十进制有符号整数

%u 十进制无符号整数

%f 浮点数

%s 字符串

%c 单个字符

%p 指针的值

%e 指数形式的浮点数

%x, %X 无符号以十六进制表示的整数

%o 无符号以八进制表示的整数

%g 把输出的值按照%e或者%f类型中输出长度较小的方式输出

-printf()

dll种类很多,可以使自定义的,也有是系统DLL 比如win32DLL,比如打开文件之类的API就在这里。。。

所有的设备 *** 作都是windows系统或驱动程序在执行的,你的程序不可能直接执行,当然你要告诉windows你想干什么,都需要有个桥梁,DLL是动态链接库,他其实是不能独自运行的,他没有自己的线程,所以你说是DLL完成的其实是不全对的。。。比如windows的API所在的那几个DLL文件,而且并没多大,你认为就这几个文件就能扛起一整套windows的所有功能吗???? 根本不是这样的,这windowsAPI的DLL库,只是充当一个传令兵而已。。。。

比如你要打开一个文件,是需要windows确确实实的建立一个文件对象,这必须要windows内核来完成,createfile这个API只是来获得一些相关参数,然后通知windows内核去工作,内核相关的程序,根本不在API所在的文件,WINDOWS运行时时要建立很多自己的进程的,任何功能都必须在进程里完成,单独一个DLL,什么也做不了,每个驱动程序运行都有自己的进程,和API相关的DLL,只是个和外部链接的接口,就相当于电视插销,遥控器一样,如果电视只有个壳,看上去是个电视,遥控器按钮都全乎,但就是不能用,API也是如此。。。。

就是打印一个空字符,说白了就是占个位置。

printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。

printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。

格式输出,它是c语言中产生格式化输出的函数(在 stdioh 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

中文名

格式输出

外文名

PRINT Format

外语缩写

printf(函数名)

头文件

stdioh

目录

1原型

2功能

3用法

▪ type

▪ flags

▪ width

▪ prec

▪ F|N|h|l

▪ [Argument]

▪ 转义序列

▪ 函数返回值

▪ Hap环境变量

1原型编辑

extern void printf(const char format,);

2功能编辑

在c语言中产生格式化输出的函数(定义在 stdioh 中),其向终端(显示器、控制台等)输出字符。

3用法编辑

1

2

3

4

5

6

7

8

9

//以下程序用于获得输入值i,j并将其输出(i,j之间以逗号隔开)

#include<stdioh>

int main()

{

int i, j;

scanf("%d, %d", &i, &j);

printf("i=%d;j=%d", i, j);

return 0;

}

1

2

3

4

5

6

7

//以下程序用于输出“”

#include<stdioh>

int main()

{

printf("");

return 0;

}

format

Format 参数是包含三种对象类型的一个字符串:

无格式字符复制到输出流;

转换规范,每个规范导致在值参数列表中检索 1 个或更多个项;

转义序列。

通常意义上format的格式如下:

%[flags][width][prec][F|N|h|l]type

规定输出数据的格式,具体如下:[1]

type

type的字符用于规定输出数据的类型,含义如下:

字符 对应数据类型 含义

d / i int 接受整数值并将它表示为有符号的十进制整数,i是老式写法

o unsigned int 无符号8进制整数(不输出前缀0)

u

unsigned int 无符号10进制整数

x / X

unsigned int 无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF(不输出前缀0x)

f(lf)

float(double) 单精度浮点数用f,双精度浮点数用lf(尤其scanf不能混用)

e / E

double 科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写

g / G

double 使用以上两种中最短的形式,大小写的使用同%e和%E

c

char 字符型。可以把输入的数字按照ASCII码相应转换为对应的字符

s / S

char / wchar_t 字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符)

p

void 以16进制形式输出指针

n int 到此字符之前为止,一共输出的字符个数,不输出文本

%

无输入

不进行转换,输出字符‘%’(百分号)本身

m   无   打印errno值对应的出错内容,(例: printf("%m\n"); )  

注:%g、%G在小数点位数四位或指数大于等于精度时用%e、%E,否则用%f。

flags

flags 规定输出样式,取值和含义如下:

字符

字符名称 说明

- 减号 左对齐,右边填充空格(默认右对齐)

+

加号 在数字前增加符号 + 或 -

0

数字零 将输出的前面补上0,直到占满指定列宽为止(不可以搭配使用“-”)

  空格 输出值为正时加上空格,为负时加上负号

#

井号

type是o、x、X时,增加前缀0、0x、0X

type是e、E、f、g、G时,一定使用小数点

type是g、G时,尾部的0保留

width

用于控制显示数值的宽度,取值和含义如下:

n(n=1,2,3): 宽度至少为n位,不够以空格填充。

格式列表中,下一个参数还是width

width是一个可选的指定最小值字段宽度的十进制数字字符串。如果转换值字符少于字段宽度,该字段将从左到右按指定的字段宽度填充。如果指定了左边调整选项,字段将在右边填充。如果转换结果宽于字段宽度,将扩展该字段以包含转换后的结果。不会发生截断。然而,小的精度可能导致在右边发生截断。

prec

用于控制小数点后面的位数,取值和含义如下:

无按缺省精度显示0

当type=d,i,o,u,x时,没有影响;

type=e,E,f时,不显示小数点

n(n=1,2,3)

当type=e,E,f时表示的最大小数位数;

type=其他,表示显示的最大宽度

prec是指可选的精度。精度是一个 .(点)后跟十进制数字字符串。如果没有给出精度,按 0(零)对待。精度指定:

d、o、i、 u、x 或 X 转换的最少数字显示位数。

e 和 f 转换的基数字符后的最少数字显示位数。

g 转换的最大有效数字位数。

s 转换中字符串的最大打印字节数目。

F|N|h|l

表示指针是否是远指针或整数是否是长整数

F 远指针

N 近指针

h 短整数(short int)

l 长整数(long int) (此处如果与d搭配为%lld则为long long int(C99),与f搭配为%llf则为long double(C99))

[Argument]

包含需要输出的数据,可以是常量(字符常量、数字常量、字符串常量),变量,以及运算式。此处的数据应当与前面的format中的格式控制符一一对应(如果不对应会产生错误)。[2]

例如:

1

2

3

4

5

6

int a=1;

float b=10;

char str[12]="Hello World";

printf("This is an example of printf:\n");

printf("a is %d,b is %f,and a+b=%f",a,b,a+b);

printf("I want to say,%s",str);

转义序列

这些转义序列在字符串中会被自动转换为相应 *** 作命令

表示

符号

意义

符号

意义

\a

铃声(提醒)

\b

Backspace

\f

换页

\n

换行

\r

回车

\t

水平制表符

\v

垂直制表符

\’

单引号

\”

双引号

\\

反斜杠

\

文本问号

\ ooo (例如\024)

ASCII字符(OCX)

\xhh (例如:\x20)

ASCII字符(HEX)

\xhhhh

宽字符(2字节HEX)

例如,WCHAR f = L'\x4e00' 或 WCHAR b[] = L"The Chinese character for one is \x4e00"。

函数返回值

printf 函数的一般形式为:

1

int printf(const char format, [argument]);

以上形式,我们在Visual C++里输入“printf”(将会看到)。

说明printf函数类型为整型,其返回值是整型值。

其值为printf实际控制输出的字符数。

printf函数实际上是将所有参数按字符输出,根据该函数的参数1(const char format),我们不难理解。

例如:

1

2

3

4

int a=6, b;//a的值为6

b = 24;//b的值为24

printf( "the value of printf is:%d\n", a );

printf( "%d\n", b );

以上程序将会输出:

程序举例例一:

1

2

3

4

5

6

7

8

9

10

11

12

13

#include <stdioh>

#define C "C Programming"

int main(void)

{

int a=12345;

float b=512345678;

char e,d,f;

scanf("%c %c %c",&e,&d,&f);

printf("int is:%d\n",a);

printf("float is:%f\n",b);

printf("char is:%s\n",C);

return 0;

}

例二

printf 也可以这样用(具体请参照 C 语法,字符串相关内容。这不是 printf 特有功能):

1

printf("123\n","456\n","789\n");

输出:

123

注意:

1

printf("123\n" "456\n" "789\n");

的输出结果与

1

printf("123\n"); printf("456\n"); printf("789\n");

是相同的。

因此输出多行时,也并不需要每行调用一次printf。

例三

妙用printf判断闰年程序

1

2

3

4

5

6

7

8

#include<stdioh>

int main(void)

{

int a;

scanf("%d",&a);

printf("%s",a%(a%1004:400)"NO":"YES");

return 0;

}

(此例中用到了:的运算符)

例四

1

2

3

4

5

6

7

8

9

10

11

#include <stdioh>

#include<stringh>

int main(void)

{

char ch[20];

int m,n;

strcpy(ch,"Happy!");

scanf("%d%d",&m,&n);

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

return 0;

}

(此例中使用了scanf函数和strcpy函数)

其中前边定义的是总的宽度,后边是指定输出字符个数。分别对应外边参数m和n。

输入:

10 3

输出:

Hap环境变量

下列环境变量影响 printf 命令的执行:

LANG 在 LC_ALL 和相应的环境变量(以 LC_ 开头)没有指定语言环境时,确定语言环境编目使用的语言环境。

LC_ALL 确定用于覆盖由 LANG 或其它任何 LC_环境变量设置的任何语言环境编目值的语言环境。

LC_CTYPE 确定把文本字节数据顺序解释为字符的语言环境;例如,单一字节对应多字节字符的参数。

LC_MESSAGES 确定写消息使用的语言。

LC_NUMERIC 确定数字格式编排的语言环境。此环境变量影响使用 e、E、f、g 和 G 转换字符编写的数字的格式。

printf的解释:n 写格式化输出;打印函数。

短语

printf-style 命令参数格式遵守

define PR printf 宏定义

No manual entry for printf 没有入口

例句

Is there a command to printf 

是否有个命令来打印?

And then I said printf "Oh hi world!" 

紧接着是printf“Oh, hi, world !”

printf 是可变参数的函数,功能非常强大

typedef char va_list;

#define _AUPBND (sizeof (acpi_native_int) - 1)

#define _ADNBND (sizeof (acpi_native_int) - 1)

#define _bnd(X, bnd) (((sizeof (X)) + (bnd)) & (~(bnd)))

#define va_arg(ap, T) ((T )(((ap) += (_bnd (T, _AUPBND))) - (_bnd (T,_ADNBND))))

#define va_end(ap) (void) 0

#define va_start(ap, A) (void) ((ap) = (((char ) &(A)) + (_bnd (A,_AUPBND))))

int printf(char fmt, )

{

va_list args;

int n;

va_start(args, fmt);

n = vsprintf(sprint_buf, fmt, args);

va_end(args);

write(stdout, sprint_buf, n);

return n;

}

static inline long write(int fd, const char buf, off_t count)

{

return sys_write(fd, buf, count);

}

通过一个宏va_start把所有的可变参数放到了由args指向的一块内存中,

然后再调用vsprintf

最后实际上是通过调用sys_write输出到标准输出设备,就是显示器上来实现的

sys_write(unsigned int fd, const char buf, size_t count);

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12189229.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存