C++学习(七)(C语言部分)之 输入

Wesley13
• 阅读 467

输入学习时的笔记(其实也没什么用,留着给自己看的)

输出是指 把内容打印到控制台窗口

输入是指 把内容输入到程序里 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

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Ustinain Ustinain
2年前
C语言_格式化输入输出
C语言_格式化输入输出我们知道在最开始输入输出的printf和scanf里可以用百分号跟上一个字母d说明要整数的类型,%f说明要以浮点数输出printf()%flagswidth.prechlLty
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
C# Aspose.Cells导出xlsx格式Excel,打开文件报“Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃”
报错信息:最近打开下载的Excel,会报如下错误。(xls格式不受影响)!(https://oscimg.oschina.net/oscnet/2b6f0c8d7f97368d095d9f0c96bcb36d410.png)!(https://oscimg.oschina.net/oscnet/fe1a8000d00cec3c
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
2年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Stella981 Stella981
2年前
Github标星5300+,专门为程序员开发文档开源管理系统,我粉了
!(https://oscimg.oschina.net/oscnet/a11909a041dac65b1a36b2ae8b9bcc5c432.jpg)码农那点事儿关注我们,一起学习进步!(https://oscimg.oschina.net/oscnet/f4cce1b7389cb00baaab228e455da78d0
Stella981 Stella981
2年前
Python基础之格式化输出、运算符、数字与布尔值互换以及while...else
python是一天学一点,就这样零零碎碎……格式化输出  %是占位符,%s是字符串格式,%d整数格式,%f是浮点数格式1nameinput('输入姓名')2ageinput('输入年龄')3str'年龄:%d,姓名:%s'%(int(age),name)4str
Stella981 Stella981
2年前
Nginx反向代理upstream模块介绍
!(https://oscimg.oschina.net/oscnet/1e67c46e359a4d6c8f36b590a372961f.gif)!(https://oscimg.oschina.net/oscnet/819eda5e7de54c23b54b04cfc00d3206.jpg)1.Nginx反
Python进阶者 Python进阶者
2个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这