c语言中,printf(“ ”)是什么意思?为什么括号里面什么都不加
你看看printf函数的原型:
int printf ( const char * format, ... );
首先第一个参数是const char *,所以你如果在其他地方定义个这个char*,当然你可以不用加双引号。平时我们加双引号时因为我们临时才定义的那个char *。
然后printf是一个可变参数的函数。
希望对你有帮助!
int printf(const char *format,[argument]);
format 参数输出的格式,定义格式为:
%[flags][width][.perc] [F|N|h|l]type
规定数据输出方式,具体如下:
1.type 含义如下:
d 有符号10进制整数
i 有符号10进制整数
o 有符号8进制整数
u 无符号10进制整数
X/x 有符号16进制整数
F/f 浮点数
E/e 用科学表示格式的浮点数
g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数
c 单个字符
s 字符串
% 显示百分号本身
p 显示一个指针,near指针表示为:XXXX
far 指针表示为:XXXX:YYYY
n 相连参量应是一个指针,其中存放已写字符的个数
2.flags 规定输出格式,取值和含义如下:
无 右对齐,左边填充0和空格
+ 左对齐,右边填充空格
- 在数字前增加符号 + 或 -
一个空格 只对负数显示符号
# 当type=c,s,d,i,u时没有影响
type=o,x,X时,在数值前增加'0'字符
type=e,E,f时,总是使用小数点
type=g,G时,除了数值为0外总是显示小数点 3.width 用于控制显示数值的宽度,取值和含义如下n(n=1,2,3...) 宽度至少为n位,不够以空格填充
0n(n=1,2,3...) 宽度至少为n位,不够左边以0填充 * 格
式列表中,下一个参数还是width 4.prec 用于控制小数点后面的位数,取值和含义如下:
无 按缺省精度显示
0 当type=d,i,o,u,x时,没有影响
type=e,E,f时,不显示小数点
n(n=1,2,3...) 当type=e,E,f时表示的最大小数位数
type=其他,表示显示的最大宽度 .*
格式列表中,下一个参数还是width
5.F|N|h|l 表示指针是否是远指针或整数是否是长整数
F 远指针
n 近指针
h短整数或单精度浮点数
l 长整数或双精度浮点数
1.一般格式
printf(格式控制,输出表列)
例如:printf("i=%d,ch=%c
",i,ch);
说明:
(1)“格式控制”是用双撇号括起来的字符串,也称“转换控制字符串”,它包括两种信息:
①格式说明:由“%”和格式字符组成,它的作用是将输出的数据转换为指定的格式输出。
②普通字符,即需要原样输出的字符。
(2)“输出表列”是需要输出的一些数据,可以是表达式
(3)printf函数的一般形式可以表示为
printf(参数1,参数2,……,参数n)
功能是将参数2~参数n按参数1给定的格式输出
2.格式字符(9种)
(1)d(或i)格式符。用来输出十进制整数,有以下几种用法:
①%d,按整型数据的实际长度输出。
②%md,m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。
③%ld(%mld 也可),输出长整型数据。
例如:long a=123456;
printf("%ld",a);
(2)o格式符,以八进制数形式输出整数。格式:%o,%mo,%lo,%mlo都可。
(3)x(或X)格式符,以十六进制数形式输出整数。格式:%x,%mx,%lx,%mlx都可。
(4)u格式符,用来输出unsigned型数据,即无符号数,以十进制数形式输出。格式:%u,%mu,%lu都可。
参见:li4-3.c/*无符号数据的输出*/
(5)c格式符,用来输出一个字符。格式:%c,%mc都可。
(6)s格式符,用来输出一个字符串。格式:%s,%ms,%-ms,%m.ns,%-m.ns都可。
参见:li4-5.c /*字符串的输出*/
(7)f格式符,用来输出实数(包括单、双精度),以小数形式输出。格式:%f,%m.nf,%-m.nf都可。
注意:单精度实数的有效位数一般为7位,双精度为16位。
参见:li4-6.c/*输出单精度实数时的有效位数*/
li4-7.c/*输出双精度实数时的有效位数*/
li4-8.c/*输出实数时指定小数位数*/
(8)e(或E)格式符,以指数形式输出实数。格式:%e,%m.ne,%-m.ne都可。
(9)g(或G)格式符,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种)。
3.说明
(1)除了X、E、G(用大写字母表示)外,其他格式字符必须用小写字母;
(2)“格式控制”字符串内可以包含转义字符;
(3)如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示,如:
printf("%f%%",1.0/3);
(4)格式字符表参见下表
表4.1 printf格式字符
格式字符 说 明
d,i 以带符号的十进制形式输出整数(正数不输出符号)
o 以八进制无符号形式输出整数(不输出前导符0)
x,X 以十六进制无符号形式输出整数(不输出前导符0x),用x则输出十六进制数的a~f时以小写形式输出,用X时,则以大写字母输出
u 以无符号十进制形式输出整数
c 以字符形式输出,只输出一个字符
s 输出字符串
f 以小数形式输出单、双精度数,隐含输出6位小数
e,E 以指数形式输出实数
g,G 选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0
表4.2 printf的附加格式说明字符
字符
说明
字母l
用于长整型整数,可加在格式符d、o、x、u前面
m(代表一个正整数)
数据最小宽度
n(代表一个正整数)
对实数,表示输出n位小数;对字符串,表示截取的字符个数
-
输出的数字或字符在域内向左靠
printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。
printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。
格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
中文名
格式输出
外文名
PRINT Format
外语缩写
printf(函数名)
头文件
stdio.h
目录
1原型
2功能
3用法
▪ type
▪ flags
▪ width
▪ prec
▪ F|N|h|l
▪ [Argument]
▪ 转义序列
▪ 函数返回值
▪ Hap环境变量
1原型编辑
extern void printf(const char *format,...);
2功能编辑
在c语言中产生格式化输出的函数(定义在 stdio.h 中),其向终端(显示器、控制台等)输出字符。
3用法编辑
1
2
3
4
5
6
7
8
9
//以下程序用于获得输入值i,j并将其输出(i,j之间以逗号隔开)
#include<stdio.h>
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<stdio.h>
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=1.0;
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 <stdio.h>
#define C "C Programming"
int main(void)
{
int a=12345;
float b=5.12345678;
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<stdio.h>
int main(void)
{
int a;
scanf("%d",&a);
printf("%s",a%(a%100?4:400)?"NO":"YES");
return 0;
}
(此例中用到了?:的运算符)
例四
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include<string.h>
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("");没有任何实际意义,但是没有语法错误。
例如:
#include <stdio.h>
int main()
{
printf("1");
printf("");
printf("2");
return 0;
}
/*
运行结果:
12
*/
打印一个空字符串,你可以理解为打印一个空格
什么都不加就是一个空字符串。
print、printf、println的区别
print、printf和println是编程中用于输出的不同函数,它们之间存在明显的区别。解释:1. print函数:print通常用于简单的文本输出,它会将内容直接打印到指定的输出设备上,如控制台或屏幕。它通常用于Python等语言中。例如,在Python中,使用print语句可以输出字符串、数字等信息。它不会自动添加换行符,因此...
print在编程中是什么意思?
print在编程中的意思是输出或打印。详细解释:1. 基本定义 在编程中,print是一个常见的函数或命令,它的主要作用是将信息显示在屏幕上。无论是哪种编程语言,print的核心功能都是将文本、数字、变量值或其他类型的数据展示给用户。2. 功能应用 当你在编程时,可能会使用print来调试代码、展示程序运行...
print是什么意思啊了
print是一个Python语言中的关键字,它的作用是将指定的内容输出到屏幕上。在Python中,如果想要输出一个字符串或者一个变量的值,可以使用print函数进行输出。例如,print("Hello World!")会在屏幕上输出"Hello World!"这个字符串。print函数还可以输出多个值,通过使用逗号进行分隔。例如,print("Python"...
c语言print是什么意思
print是c语言中的一个函数,其作用是将指定的字符或字符串输出到标准输出设备,通常为控制台,方便程序员在调试过程中查看程序的输出结果。在实际开发中,print函数是使用最为频繁的函数之一,无论是在命令行界面还是在图形化界面中,程序都需要将必要的信息输出给用户。因此,熟练掌握print函数的使用方法是...
print编程中什么意思
print是一个打印输出语句。不带输出项的print即为输出一个空行,如果之前的print语句输出项的最后用了诸如“,”或“;”,则表示其输出是在同一行上。其后面的空的print语句用来消除前面的print语句一直在同一行上输出的效果,使其后面的输出是在下一行。编定程序,简称编程,是指让计算机代为解决某个...
print和printf有什么区别
1、用途不同:print是一个在编程中常用的输出函数,用于将数据打印输出到控制台或文件中。可以输出字符串、变量的值以及其余数据类型的内容。而printf是C语言中的一个函数,用于格式化输出字符串和其余数据到控制台或文件。可以根据格式化字符串指定的格式,将变量的值按照指定的方式打印输出。2、语法结构不...
print什么意思
print的意思是打印或印刷。它是计算机编程语言中的一个关键词,用于将程序输出到屏幕或打印机上。在计算机领域中,print是一种重要的输出方式,可以用于调试程序、显示结果和生成文档等。print的使用方法非常简单,只需要在代码中输入print加上要输出的内容即可。例如在Python语言中,使用print来输出字符串"...
print是什么意思
这个关键字的主要功能是将文本、数值等数据以可见的形式呈现给用户和开发者,便于实时查看程序执行的结果和中间步骤。通过灵活运用print语句,程序员能够检查变量的值,进行代码的调试,进而发现并修复潜在的错误。尽管在不同编程语言中,print的具体用法和参数设置有所差异,但其核心理念都是将内容输出到显示...
Vb语言中print是什么意思?
在Vb中,print是一个非常常用的命令,用于在控制台窗口中输出文字或变量的值。它可以帮助我们进行调试、查看程序运行结果等。如何正确使用print命令呢?我们需要知道print命令的语法结构。在Vb中,正确的print命令格式是:print 输出内容。其中,输出内容可以是字符串(用双引号括起来),也可以是变量名。举...
C语言print()是什么意思?
print()函数主要功能是用于打印输出。不带输出项的print即为输出一个空行,如果之前的print语句输出项的最后用了诸如",”或";”,则表示其输出是在同一行上。其后面的空的print语句用来消除前面的print语句一直在同一行上输出的效果,使其后面的输出是在下一行。Print与Println区别介绍:1、Print在输出完...
木晏小儿: 1,printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息. 2,printf()函数的调用格式为: printf("", ). 3,格式输出,它是c语言中产生格式化输出的函数(在 stdio.h 中定义).用于向终端(显示器、控制台等)输出字符.格式控制由要输出的文字和数据格式说明组成.要输出的的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义. 4,作用:在c语言中产生格式化输出的函数(定义在 stdio.h 中),其向终端(显示器、控制台等)输出字符.
祁阳县13243811919: c语言中的printf这个单词是什么意思? - ?
木晏小儿: 格式化输出,就是按照指定的格式在屏幕上输出数据.
祁阳县13243811919: c语言中的printf是什么意思 - ?
木晏小儿: C语言中的printf——格式输出函数 printf("sine of %lf is %lf\n",x,s); 其中%lf为格式字符,表示按双精度浮点数处理.它在格式串中两次现,对应了x和s两个变量.其余字符为非格式字符则照原样输出在屏幕上
祁阳县13243811919: c语言中printf(“”)啥意思啊? - ?
木晏小儿: 那是C语言中IO库中的一个函数,调用可以在控制台打印出其中的结果 你的这句语句不会打印出任何东西,因为是空字符串 写成printf("Hello world\n"); 就可以打印出Hello world这句话,并且换行
祁阳县13243811919: 请问C语言中的“printf()”是啥意思?谢谢! - ?
木晏小儿: 格式化输出语句 简单的说 就是把你要显示的东西 按照你要求的格式 显示在屏幕上 功能是很强大的 是C语言中 初期最常用的函数之一.
祁阳县13243811919: 在c语言中printf是什么意思?
木晏小儿: 输出的意思
祁阳县13243811919: C语言中printf()的参数是什么,数据类型,数据结构是什么 - ?
木晏小儿: 1printf的参数是可变的,可以在<stdio.h>头文件中查找的,第一个参数是格式字符串,然后跟进的是各个需要输出的变量,如printf("%d %d %c\n",a,b,c); "%d %d %c\n"这个字符串是第一个参数,a是第二个,b是第三个,c是第四个;printf...
祁阳县13243811919: c程序语言printf中的f是什么意思 - ?
木晏小儿: printf = print format 格式化打印,取这个名字的原因是printf()的函数原型为extern int printf(const char *format,...); 第一个参数是指示打印出来的格式,用来书写字符和格式说明,格式说明用来指示将C语言内置的数据转换为文本的方式. 以上.
祁阳县13243811919: 在C语言中,include,printf是什么意思 - ?
木晏小儿: include是C语言中的预处理指令,用于包含头文件(.h扩展名).使用方法有两种,#include <xxx.h>#include "xxx.h"使用include包含了一个头文件后,该头文件将在预处理阶段全文被复制到当前程序文件中. 两者区别主要是查找头文件的路径,<>在系统目录中查找,""先在当前目录中查找然后在系统目录中查找.printf为格式化输出函数,将数据输出到屏幕,原型: void printf(const char *format,...);通过format指定格式符,再传入相应的要输出的元素即可.
祁阳县13243811919: c语言中printf中的*是什么意思 - ?
木晏小儿: c语言中printf的意思是将你要输出的信息输出到屏幕上.格式是:如printf(“it's ok!”);意思是在黑屏上看到it's ok!这条语句.