目录
1. 标准输入输函数出头文件
#include <stdio.h>
2. printf
2.1 函数申明
int printf ( const char * format, ... );
2.2 基本用法
- printf() 的作用是将参数文本输出到屏幕。它名字里面的 f 代表 format (格式化),表示可以定制输出文本的格式
#include <stdio.h>
int main(void)
{
printf("Hello World");
return 0;
}
- 上⾯命令会在屏幕上输出⼀行文字“Hello World”
- printf() 不会在行尾自动添加换行符,运行结束后,光标就停留在输出结束的地方,不会自动换行
- 为了让光标移到下⼀行的开头,可以在输出文本的结尾,添加⼀个换行符 \n
#include <stdio.h>
int main(void)
{
printf("Hello World\n");
return 0;
}
- 如果文本内部有换行,也是通过插入换行符来实现,如下方代码:
#include <stdio.h>
int main(void)
{
printf("Hello\nWorld\n");
printf("Hello\n");
printf("World\n");
return 0;
}
2.3 占位符
- printf() 可以在输出文本中指定占位符
- 谓“占位符”,就是这个位置可以用其他值代入
#include <stdio.h>
int main()
{
printf("There are %d apples\n", 3);
return 0;
}
- 上⾯示例中, There are %d apples\n 是输出文本,里面的 %d 就是占位符,表示这个位置要用其他值来替换。占位符的第⼀个字符⼀律为百分号 % ,第⼆个字符表示占位符的类型, %d 表示这里代入的值必须是⼀个整数
- printf() 的第⼆个参数就是替换占位符的值,上面的例子是整数 3 替换 %d 。执行后的输出结果就是 There are 3 apples
- 常用的占位符除了 %d ,还有 %s 表示代入的是字符串
#include <stdio.h>
int main()
{
printf("%s will come tonight\n", "zhangsan");
return 0;
}
- 上面示例中, %s 表示代入的是⼀个字符串,所以 printf() 的第⼆个参数就必须是字符串,这个例子是 zhangsan 。执行后的输出就是 zhangsan will come tonight
- 输出文本里面可以使用多个占位符
#include <stdio.h>
int main()
{
printf("%s says it is %d o'clock\n", "lisi", 21);
return 0;
}
- 上面示例中,输出文本 %s says it is %d o’clock 有两个占位符,第⼀个是字符串占位符 %s ,第⼆个是整数占位符 %d ,分别对应 printf() 的第⼆个参数( lisi )和第三个参数( 21 )。执行后的输出就是 lisi says it is 21 o’clock
- printf() 参数与占位符是⼀⼀对应关系,如果有 n 个占位符, printf() 的参数就应该有 n +1 个。如果参数个数少于对应的占位符, printf() 可能会输出内存中的任意值
2.4 输出格式
2.4.1 限定宽度
- printf() 允许限定占位符的最小宽度
#include <stdio.h>
int main()
{
printf("%5d\n", 123); // 输出为 " 123"
printf("%#05d\n", 123)//输出为“00123”
return 0;
}
- 上面示例中, %5d 表示这个占位符的宽度至少为5位。如果不满5位,对应的值的前面面会添加空格,如果%后加上 #0 ,则不足位补0
- 输出的值默认是右对齐,即输出内容前面会有空格;如果希望改成左对齐,在输出内容后面添加空格,可以在占位符的 % 的后面插入⼀个 - 号
#include <stdio.h>
int main()
{
printf("%-5d\n", 123); // 输出为 "123 "
printf("%-#05d\n", 123); // 输出为 "123 "
return 0;
}
- 对于小数,这个限定符会限制所有数字的最小显示宽度
#include <stdio.h>
int main()
{
printf("%12f\n", 123.45);
return 0;
}
- 上面示例中, %12f 表示输出的浮点数最少要占据12位。由于小数的默认显示精度是小数点后6位,所以 123.45 输出结果的头部会添加2个空格
2.4.2 总是显示正负号
- 默认情况下, printf() 不对正数显示 + 号,只对负数显示 - 号。如果想让正数也输出 + 号,可以在占位符的 % 后面加⼀个 +
#include <stdio.h>
int main()
{
printf("%+d\n", 12); // 输出 +12
printf("%+d\n", -12); // 输出 -12
return 0;
}
- 上面示例中, %+d 可以确保输出的数值,总是带有正负号
2.4.3 限定小数位数
- 输出小数时,有时希望限定小数的位数。举例来说,希望小数点后面只保留两位,占位符可以写成 %.2f
#include <stdio.h>
int main()
{
printf("Number is %.2f\n", 0.5);
return 0;
}
- 上⾯示例中,如果希望小数点后面输出3位( 0.500 ),占位符就要写成 %.3f
- 这种写法可以与限定宽度占位符,结合使用:
#include <stdio.h>
int main()
{
printf("%6.2f\n", 0.5);
return 0;
}
- 上面示例中, %6.2f 表示输出字符串最小宽度为6,小数位数为2。所以,输出字符串的头部有两个空格
- 最小宽度和小数位数这两个限定值,都可以用 * 代替,通过 printf() 的参数传入
#include <stdio.h>
int main()
{
int a = 6;
int b = 2;
printf("%*.*f\n", a, b, 0.5);
return 0;
}
2.4.4 输出部分字符串
- %s 占位符用来输出字符串,默认是全部输出。如果只想输出开头的部分,可以用 %.[m]s 指定输出的长度,其中 [m] 代表⼀个数字,表示所要输出的长度
#include <stdio.h>
int main()
{
printf("%.5s\n", "hello world");
return 0;
}
- 上面例中,占位符 %.5s 表示只输出字符串“hello world”的前5个字符,即“hello”
2.5 返回值
- 返回值为整型,是输出字符的个数,即格式化字符串中字符的个数
- 比如:
int main()
{
int count = printf("ni hao csdn,%d\n",111);
//这里的格式化字符串包括逗号、空格、换行符、字母及数字共计16个字符
printf("n = %d\n",count);
}
- 运行结果为:
3. putchar
3.1 函数申明
int putchar ( int character );
3.2 基本用法
- putchar函数把输入的整型对应的字符输出到屏幕上,并返回相同的整型。这个函数在同一个时间内只会输出一个单一的字符
- putchar 函数输出后不会自动换行,如需换行可以使用prinf函数
- 返回值为整型,是对应字符的ascll值
#include <stdio.h>
int main()
{
int c = getchar();
printf("%d\n", c);
int b = putchar(c);
printf("\n");
printf("%d\n", b);
return 0;
}
4. puts
4.1 函数申明
int puts ( const char * str );
4.2 基本用法
- puts 函数把字符串 s 和一个尾随的换行符写入到 stdout(屏幕)
- puts 函数的正常打印后的返回值为0,打印异常为EOF
# include <stdio.h>
int main(void)
{
char str[20] = "0"; //字符数组初始化0
printf("请输入字符串:");
gets(str);
printf("%s\n", str);
int a = puts(str);
printf("%d\n", a);
return 0;
}
最后,
恭喜你又遥遥领先了别人!