输入学习时的笔记(其实也没什么用,留着给自己看的)
输出是指 把内容打印到控制台窗口
输入是指 把内容输入到程序里 scanf
scanf 从键盘获取内容到程序里
格式占位符+变量要加取地址符
1、格式占位符
%d 整数类型
%c 字符类型
%f 浮点型 float (不能混写和%lf不一样)
%lf double
%s 字符串
%u 无符号十进制
%x 无符号十六进制
%o 无符号八进制
2、控制输入
1、宽度 最大的接受的长度
%3d 表示能够接受多少整数 3d 是最多能接受3位 多的区域留给下一个
2.长度 h端 l长
double %lf
short %hd
long %ld
long long %lld
3、* 表示跳过 获取内容后直接丢掉
123456789
关于scanf的说明
1.scanf没有精度控制 也就是说没有%3.2lf这种说法
2.变量记得取地址 %s用于字符数组 一般不需要取地址符
3.输入多个字时 输入多个整数 小数 两个数字之间用空格 tab隔开或者回车隔开
scanf的格式占位字符串里有什么就输入什么
scanf格式占位符末尾也不要写\n
4.%d 打印一个char -->ascii码
scanf稍微严格一点 格式占位符和变量 类型要匹配 不然会报错
5.scanf_s 新版函数 _s scanf 更安全
scanf 旧版函数
scanf和scanf_s区别
输入char的时候的区别
char ch;
scanf("%c",&ch);
scanf_s("%c",&ch,1);//输入字符串的时候额外加个1
输入字符串时的区别
char arr[20];
scanf("%s",arr);
scanf_s("%s",arr,20);//20是数组的大小 表示最多能够读取到20个字符
除了上面两种情况 scanf和scanf_s没有区别 用法一致
warning c4996 指明了代替的新函数 直接用新函数就行
6.scanf的输入的时候 两个getchar
在屏幕上输入 按下回车后 进入到缓冲区中
\n留在缓冲区里
scanf是在缓冲区里读取数据
getchar();在缓冲区里读数据
不报错不代表没有错误
*****************************我是分割线*****************************************/
#include<stdio.h>
int main()
{
//例一:让用户输入年龄
//printf("请输入你的年龄\n");//提示
//int age;
//scanf("%d",&age);//记得加上取地址符
//printf("用户的年龄是%d\n",age);
//例二:让用户输入手机号
//int num1, num2;
//printf("请输入你的电话号码\n");
//scanf("%3d%*4d%4d",&num1,&num2);//%*4d舍弃
//printf("用户的电话号码是%3d****%4d\n",num1,num2);
//例三:
//char arr[20];// 字符数组 [数组大小] char 数组名[数组大小] 字符数组的定义格式
//字符串一般存放在字符数组中 \0是字符串结尾
//数组大小 >=字符串中字符个数
//字符产中的字符个数+1 字符创中的中文一个汉字占两位
//printf("请输入字符串:");
//scanf("%s",arr);
//printf("输入的内容是:%s",arr);//不需要加取地址符
//例四:输入时隔开的例子
//int num1, num2;
//printf("请输入年龄和身高\n");
//scanf("%d,%d",&num1,&num2);//加了逗号之后 输入时只能用逗号隔开 否则一般是空格键
//printf("%d岁,%d厘米\n",num1,num2);
//例五
//char x, y;
//scanf("%d%d",&x,&y);
//printf("%d岁,%d厘米",x,y);
getchar();//如果有scanf 最好加上两个getchar 只需要用到两个
getchar();
while (1);//死循环 防止提前退出
return 0;
}
2018.05.22 11:39:28