C语言中scanf输入汇总
在C语言中,有多个函数可以从键盘获得用户输入:
- scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。
- getchar()、getche()、getch():这三个函数都用于输入单个字符。
- gets():获取一行数据,并作为字符串处理。
在这其中scanf函数是最灵活、最复杂、最常用的输入函数,但它不能完全取代其他函数,所以都要有所了解。
下面是关于scanf函数用法的一些总结:
scanf() 格式控制符汇总
格式控制符 |
说明 |
%c |
读取一个单一的字符 |
%hd、%d、%ld |
读取一个十进制整数,并分别赋值给 short、int、long 类型 |
%ho、%o、%lo |
读取一个八进制整数(可带前缀也可不带),并分别赋值给 short、int、long 类型 |
%hx、%x、%lx |
读取一个十六进制整数(可带前缀也可不带),并分别赋值给 short、int、long 类型 |
%hu、%u、%lu |
读取一个无符号整数,并分别赋值给 unsigned short、unsigned int、unsigned long 类型 |
%f、%lf |
读取一个十进制形式的小数,并分别赋值给 float、double 类型 |
%e、%le |
读取一个指数形式的小数,并分别赋值给 float、double 类型 |
%g、%lg |
既可以读取一个十进制形式的小数,也可以读取一个指数形式的小数,并分别赋值给 float、double 类型 |
%s |
读取一个字符串(以空白符为结束) |
%c格式对应的是单个字符,%s格式对应的是字符串。
%c输入函数只会对一个字节空间赋值,而%s会一直赋值,直到输入中遇到空白字符为止
举例:
1:char a;
2:char b[20];
3:scanf("%c",&a); //只能输入一个字符。
4:scanf("%s",b); //可以输入一串不超过20字符的字符串
在输入数组时,谨记:
int n;
int a[6];
scanf("%d\n",&n);
for(int i=0;i<n;i++)
{
for(int k=0;k<6;k++)
{
scanf("%d",&a[k]);
}
如果像上述那样输入会造成编译器把六个数字会当成一个数字输进去
方法1:用字符数组
char a[7];
gets(a);
方法2:用%1d
让编译器一次只能读入一个数字
long long 类型的输入输出
long long a;
scanf("%lld",&a);
printf("%lld",a);
unsigned long long :
的范围是[0,264-1]。如果越界了以后就相当于是对264-1求模了。
long long:是有符号类型它的范围是[-263-1,263+1],因为有符号的第63位表示“正负”而不表示数值。但数据越界了以后就会从负数开始计数
printf("%lld",a);
printf("%llu",a);
int 十进制:-2^31=-21 4748 3648 到 2^31-1=21 4748 3647。共10位,21亿。
在32位或64位机器中,int占4个字节,即32位。(一个字节,占8位)
int能表示的最大正整数为:
0111 1111 1111 1111 1111 1111 1111 1111 (最高位表示符号位,正数符号位为0)对应的10进制数为2^31-1=2147483647,对应的十六进制表示为:0x7FFFFFFF。
int能表示的最小负整数为:
1000 0000 0000 0000 0000 0000 0000 0000 (最高位表示符号位,负数符号位为1),负数在计算机中以补码的形式存在,所以对应的原码(补码的补码)也是1000 0000 0000 0000 0000 0000 0000 0000,对应的十六进制表示为0x80000000,而C/C++规定该值为-2^31=-2147483648。
所以最终,int类型(整数类型)的范围为-2^31 ~ 2^31-1,即-2147483648~2147483647,十六进制表示:0x80000000~0x7FFFFFFF。
%d的几种形式总结
1、%d就是普通的输出了
2、%2d是将数字按宽度为2,采用右对齐方式输出,若数据位数不到2位,则左边补空格.%-2d是将数字按宽度为2,采用左对齐方式输出。
3、%02d,和% 2d差不多,只不过左边补0
修饰符 格式说明 意义:1、M
%md 以宽度m输出整型数,不足m时,左补空格
2、0m
%0md 以宽度m输出整型数,不足m时,左补零
3、m,n
%m.nf 以宽度m输出实型小数,小数位为n位
C语言中scanf输入汇总相关推荐
- c语言中scanf输入判断,无法判断某一个输入的字符?scanf()
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 for(;n_s<4;n_s++,pdr++) { if(!(pdr->hp))php+=1;printf("现在与你对决的是[%s ...
- c语言中整数和实数能比较大小吗,c语言中,输入一个数字,怎么判断那个数字是整数还是实数,代码如下,输入实数后出现了死循环...
c语言中,输入一个数字,怎么判断那个数字是整数还是实数,代码如下,输入实数后出现了死循环 int main(void) { SEQLIST a; int b;//用于保存输入选择的数字 a.len=0 ...
- c语言中scanf(%d%*c, n);的意思
c语言中scanf("%d%*c", &n);的意思. 2018年07月22日 17:08:00 韩小妹 阅读数:3274 scanf()中%*表示忽略掉一个输入项.上面的 ...
- C语言中scanf()函数中的是什么
困惑初学者的C语言中scanf()函数中的&到底是什么 对于初学者而言,肯定有过这样一个困惑:为什么在使用scanf函数输入数据时有时需要在参数前加一个&,而有时却不用. 在回答&qu ...
- scanf在c语言中的作用,c语言中scanf的基本用法
前言 scanf()是C语言的格式输入函数,和printf函数一样被声明在stdio.h头文件中,它的基本使用很简单: 1 int a; 2 scanf("%d",&a); ...
- C语言-在scanf表示什么,在c语言中scanf代表什么意思?
在c语言中scanf代表什么意思? 发布时间:2020-04-24 14:04:21 来源:亿速云 阅读:370 作者:小新 今天小编给大家分享的是在c语言中scanf代表什么意思,相信很多人都不太了 ...
- c语言scanf中 作用,c语言中scanf的用法
c语言中scanf的用法的用法你知道吗?下面小编就跟你们详细介绍下c语言中scanf的用法的用法,希望对你们有用. c语言中scanf的用法的用法如下: printf和scan函数的使用方法 一 pr ...
- C语言中Scanf语句的注意事项
C语言中Scanf语句的注意事项共有五条. 1.Scanf遇到错误会自动停止,直接执行下一行. 2.当使用多个scanf接受数据时,可以加\n,防止回车被赋值到第二个scanf中. 如: 3.如果在s ...
- C语言中scanf与分隔符(空格回车Tab)
众所周知,C语言中的scanf函数的作用是从标准输入设备(通常是键盘)读取输入值,并存储到参数列表中指针所指向的内存单元.下面从几个方面说一下一些稍微细节的东西.下面的实验都在vc6.0中通过. 1. ...
最新文章
- zblog php伪静态,ZBLOG PHP版本Apache和Nginx伪静态规则以及设置方法
- openSAP中国新平台的介绍
- 修改系统默认路径,如收藏夹、桌面、我的文档
- python61到08使用说明书_python 08 文件操作
- ExtJs radiogroup form.loadRecord方法无法赋值正确解决办法
- 在千锋学前端的卢同学“不甘于落后,不安于现状”
- 算法洗脑系列(8篇)——第八篇 概率思想
- mvc:annotation-driven /
- 浅议磁盘分区——从MBR到GPT
- 机器学习中的数学系列
- JWT学习(二):Json Web Token JWT的Java使用 (JJWT)
- 三维点云处理(5)——Clustering
- mysql 增加临时表空间_数据库临时表空间设置
- 第六章 林冲为什么休妻
- 商城App接入快递100
- 云计算期末考试知识点
- 英语——2018年5月
- python中整数四舍五入的方法
- Xilinx FPGA在线加载远程更新多重加载 QSPI加载方式 可通过PCIe/网口/串口等接口加载
- Android自定义虚线