1.前言:
c语言作为世界排名前几的编程语言有着其丰富的语法和独特的魅力,那c语言是如何打印和输入的呢,这篇文章就简单的讲解了c语言最常见输出函数的用法。
2.输出printf
1.基本用法
printf() 的作⽤是将参数⽂本输出到屏幕。它名字⾥⾯的 f 代表 format (格式化),表⽰可以定制输出⽂本的格式
#include <stdio.h>
int main()
{
printf("hello word"); //打印hello word
return 0;
}
上⾯命令会在屏幕上输出⼀⾏⽂字“Hello World”。
2.占位符
所谓 “占位符”,就是这个位置可以⽤其他值代⼊。
#include <stdio.h>
int main()
{
printf("There are %d apples\n", 3);
return 0;
}
上⾯⽰例中, There are %d apples\n 是输出⽂本,⾥⾯的 %d 就是占位符,表⽰这个位置要⽤其他值来替换。占位符的第⼀个字符⼀律为百分号 % ,第⼆个字符表⽰占位符的类型, %d 表⽰这⾥代⼊的值必须是⼀个整数。
3.c语言常见占位符
• %c :字符。
• %d :⼗进制整数。// int
• %e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。
• %i :整数,基本等同于 %d 。
• %f :⼩数(包含 float 类型和 double 类型)。//float %f double - %lf
• %o :⼋进制整数。
• %p :指针(⽤来打印地址)。
• %s :字符串。
• %u :⽆符号整数(unsigned int)。
• %x :⼗六进制整数。
• %zd : size_t 类型。
当我们需要什么类型带入就使用什么类型的占位符
例
#include<stdio.h>
int main()
{
printf("%s wants to %s at %d clock", "zhangsan","play computer",10);
return 0;
}
上示例将会打印 zhangsan wants play computer at 10 clock
在这里分别带入了两个字符型%s和一个整形%d,将会使用后面的参数替代前面的占位符号,当我们需要变化时将后面的参数替换为变量即可实现。
4.函数原型介绍(可跳过不看)
_CRT_STDIO_INLINE int __CRTDECL printf(
_In_z_ _Printf_format_string_ char const* const _Format,
...
);
以上是printf函数原型
1 _CRT_STDIO_INLINE: 这是一个宏,通常用于指示该函数是内联的,意味着编译器可以选择将其代码直接嵌入调用处,以提高性能。
int: 函数的返回类型是 int,表示成功输出的字符数量。如果输出失败,则返回一个负值。
2.__CRTDECL: 这是一个调用约定的宏,定义了函数的调用方式,可能与平台或编译器有关。
3.In_z: 这是一个注释,用于指示 _Format 参数是一个非空字符串。
4.Printf_format_string: 这是一个注释,表明 _Format 参数是一个格式化字符串,函数根据该字符串的格式来输出后续的参数。
5.char const const _Format*:
char const*: 指向字符常量的指针,表示格式字符串不能被修改。
const: 这个修饰符表明指针本身也是常量,不能指向其他地址。
6…: 这个省略号表示函数可以接受可变数量的参数,具体数量和类型由格式字符串决定。
由此可以看出其实printf只是一个稍微复杂的函数,里面有两个参数一个是
char const* const _Format 说白了这是一个字符串也就是printtf的第一个参数,也就是说printf实际只是输出了一个可以使用占位符字符串而已。
5.输出格式
printf可以控制限定宽度、限定⼩数位数
#include <stdio.h>
int main()
{
printf("%5d\n", 123); // 输出为 " 123"
return 0;
}
上⾯⽰例中, %5d 表⽰这个占位符的宽度⾄少为5位。如果不满5位,对应的值的前⾯会添加空格。输出的值默认是右对⻬,即输出内容前⾯会有空格;如果希望改成左对⻬,在输出内容后⾯添加空格,可以在占位符的 % 的后⾯插⼊⼀个 - 号。
#include <stdio.h>
int main()
{
printf("Number is %.2f\n", 0.5);
return 0;
}
上⾯⽰例中, %6.2f 表⽰输出字符串最⼩宽度为6,⼩数位数为2。所以,输出字符串的头部有两个空格。