c语言中printf和scanf函数

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文件中自然有这代码了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值