ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

C语言03:输入输出和占位符

C语言03:输入输出和占位符 文章目录前言1.输入和输出1.1输出(printf)1.2输入(scanf)2.常用占位符2.1限定宽度2.2限定小数位数前言刚学 C 语言时printf 和 scanf 是最早碰到的两个函数但别小看它们——很多人写了好几年偶尔还会在 scanf 的 和 %c 上栽跟头这篇文章把输入输出的常见用法和易错点都梳理了一遍适合刚入门的朋友快速上手也适合随手翻出来复习1.输入和输出1.1输出(printf)printf是C语言stdio.h这个库函数中的输出函数,将变量或者文本打印到屏幕上示例#includestdio.hintmain(){inta10;intb20;printf(Hello world!\n);printf(a %d\n,a);printf(b %d\n,b);return0;}printf 可以打印双引号中的内容也可以通过占位符打印变量的值1.2输入(scanf)scanf是C语言stdio.h这个库函数中的输入函数是从键盘读取数据然后给变量示例1#includestdio.hintmain(){intscore0;printf(请输入成绩\n);scanf(%d,score);printf(成绩%d,score);return0;}⚠️注意:要输入的变量前面一定一定要加上 我在写的有时候也很容易忘记❌错误写法scanf(“%d”, score);✅正确写法scanf(“%d”, score);示例2#includestdio.hintmain(){inta10;scanf(wd %d,a);printf(a %d\n,a);return0;}scanf双引号的内容会成为“匹配模板”输入时必须完全照搬这些内容否则匹配失败变量不会被赋值❌错误写法20✅正确写法wd 20示例3#includestdio.hintmain(){charc10;charc20;scanf(%c,c1);scanf( %c,c2);printf(c1 %c\n,c1);printf(c2 %c\n,c2);return0;}原理与避坑特性%c 是唯一一个不会跳过空格和换行的占位符空格和换行符也属于字符踩坑所以我们在输入一个字符然后按下回车的时候就直接打印了回车换行直接被当成第二个字符了解决在%c 前面加上一个空格就可以避免这种情况推荐写法scanf( %c, c2); %c 前留一个空格2.常用占位符占位符从名字上来看就是占位子的事实也确实如此在printf和scanf用了占位符就是代表这个位置可以由其他值替代占位符对应的数据类型%dint%ldlong%lldlong long%ffloat%lfdouble%cchar%s字符串%uunsigned int%zusize_t提示size_t是一种无符号整数类型sizeof的返回值就是size_t类型的2.1限定宽度#includestdio.hintmain(){inta100;intb100;printf(a %5d\n,a);printf(b %-5d\n,b);return0;}关于 %5d 和 %-5d 的规则1.限定宽度在 % 后面加上数字可以限定最小输出的宽度如果实际宽度更长会完整输出不会截断2. 对齐方式默认情况下是右对齐前面补空格如果加上负号-就是左对齐在后面补空格2.2限定小数位数#includestdio.hintmain(){floatf110.55;floatf25.445;printf(f1 %f\n,f1);printf(f2 %.2f,f2);return0;}关于 %f 的小数位控制限定小数位 在 %f 中加入 . 和数字即可限定小数位数四舍五入 %.2f 会对数字进行四舍五入而不是直接截断如果这篇文章对你学习 C 语言有帮助麻烦动动手指点赞关注加收藏你的支持是持续更新干货的最大动力
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进