pintf函数介绍
printf是标准库中的一个输出函数,用于将格式化数据打印到标准输出设备(通常是屏幕)该函数定义在头文件stdio.h中
printf()将文本输出到屏幕上
#include <stdio.h>
int main()
{
printf("hello\n");
return 0;
}
printf不会自动换行 要加\n进行换行
使用printf必须在头文件stdio.h头文件中使用
占位符
printf()可以输出文本中指定占位符
这个位置可以用其他值代替
printf与占位符位置一一对应 占位符n个 参数n+1个 若少于不对应 则printf显示任意值
#include<stdio.h>
int main()
{
printf("There are %dapples\n",3);
return 0;
}
占位符第一个用%表示 第二个是类型
如 %d %s %c 等等有许多种类 与C语言数据类型对应
输出格式 printf()可以定制占位符的输出格式
限定宽度
允许占位符的最小宽度 默认右对齐 左对齐要%后加—号
#include<stdio.h>
int main()
{
printf("%5d",123);
return 0;
}
如何显示正负号
+号要%后加+号 负号—号
限定小数位
默认小数点后打印6位 注意小数点也算一位
#include<stdio.h>
int main()
{
printf("这个是%.2f\n",0.5); //希望小数保留两位 想要3位 %.3f//
return 0;
}
限定宽度和限定小数相结合使用
#include<stdio.h>
int main()
{
printf("%5.2f\n",21.2);
return 0;
}
可以用*代替参数
#include<stdio.h>
int mian()
{
printf("%*.*f\n",5,2,21.2);
return 0;
}
sacanf函数
sacanf是C语言标准库中的输入函数,用于从标准输入设备(通常是键盘)读取格式化数据。
同样在头文件<stdio.h>中
变量值必须加上&运算符 因为sacanf传递的不是值 而是地址 指针变量不用
scanf输入原理是用户输入先放入缓存 ,按下回车键,按占位符对换成进行解读
#include <stdio.h>
int main()
{ int age= 0;
printf("请输入成绩\n");
scanf("%d",&age);
printf("%d",age);
return 0;
}
scanf的返回值
sacnf()的返回值是一个整数 表示成功读取的个数
如果没有读取任何项 或匹配失败则返回0
如果成功读取任何数据之前 发生读取数据错误或遇到文件结尾 则返回EOF(-1)
Ctrl+z 提前结束
占位符
除了%c 都会自动忽略起首空白字符 %c不忽略
若想强行略过(“ %c”)在%c前加空格 就会自动忽略空格或者多个空格
%s
从第一个非空格读起直到空格字符结束
由于scanf函数 不会检测字符串是不是超过数组长度 所以可能会超边界 为防止情况出现使用%s时 应%【m】s m是整数 字符串的最大长度后面的字符被丢弃
#include<stdio.h>
int main()
{
char name[11] ;
scanf("%10s",name);
return 0;
}
赋值忽略符
如果2020/11/11 会解析成其他形式 要想正确解读
只要在%后面加* 就会正确解析后并丢弃 (%*c
#include<stdio.h>
int main()
{
int a=0;
int b=0;
int c=0;
scanf("%d%*c %d%*c %d%*c",&a,&b,&c);
return 0;
}
)
vs2022注意
在scanf函数中使用由于vs2022环境严格
使用scanf时需在第一行加#define _CRT_SECURE_NO_WARNINGS 1
1.在电脑文件中找到newc++file.cpp文件
2.在编辑文本中加入#define _CRT_SECURE_NO_WARNINGS 1
以后在创建.c文件中自然有这代码了