scanf 函数笔记
函数声明
int scanf(const char *format, ...);
说明
<返回值> scanf ("<格式化字符串>", <参数表>);
返回值
scanf 返回成功读入的变量个数,读到文件末尾或发生错误返回EOF。
如
int n, m;
scanf("%d%d", &n, &m);
scanf("%d%d", &n, &m);
输入
3 4
3
^Z
/*Windows系统终端下以^Z即Ctr+Z代表EOF*/
返回值为 分别为 2 和 1
又如
int n;
scanf("%d", &n);
输入
^Z
返回值为 -1 ( -1 即 EOF 的值, 使用 printf 即可看到)
格式化字符串
格式
%[width][modifiers]
说明
每个%分别对应控制参数表中每个变量的输入格式(%%除外, * 亦对应一个变量);
除%引导的部分外,可加入任意输入格式有关的字符;
width指定了在当前读取操作中读取的最大字符数,可省略;
modifiers | 参数类型 | 含义 |
---|---|---|
d | char型,int型 | 读入一个十进制整数 |
o | int型,unsigned int型 | 读入一个八进制整数 |
x,X | int型,unsigned int型 | 读入一个十六进制整数 |
u | unsigned int型 | 读入一个十进制整数 |
lld | long long型 | 读入一个十进制整数 |
llu | unsigned long long型 | 读入一个十进制整数 |
c | char型,int型 | 读入单个字符,若 width 不为 1 ,则读取 width 个字符并存储在数组中连续位置。但末尾不会追加空字符。 |
s | char *型 | 读入一个字符串,读到空白符结束,末尾追加 '\0' |
f | float型 | 读入一个十进制实数 |
lf | double型 | 读入一个十进制实数 |
e,E | float型,double型 | 用指数形式读入一个十进制实数 |
g,G | float型,double型 | 读入一个十进制小数 |
p | void *型 | 读入一个指针 |
[ ] | / | 扫描字符集合 |
% | 不转换参数 | 读入一个% |
参数表
参数表中形参的数量和类型与格式化字符串相适应,否则读入可能发生异常
每个形参用逗号( , )隔开
示例
#include<stdio.h>
int main()
{
double a, b;
int d, e;
char ch, c[100];
scanf("%d%d", &d, &e); /*两个数字之间应当用空白符分开*/
scanf("(%d,%d)", &d, &e);
scanf("(%d,%d)", &d, &e);
scanf("(%d,%d)", &d, &e);
scanf("%2d%d", &d, &e);
scanf("%lf%lf", &a, &b);
scanf("%4lf%lf", &a, &b); /*注意小数点占一个字符*/
scanf("%c", &ch);
scanf("Hello World%s", c);
scanf("%11c", c);
return 0;
}
输入示例
3 3 /*变量中值分别为 3 和 3*/
(3,3) /*变量中值分别为 3 和 3*/
( 3 , 3 ) /*多空格可以正常读入,为 3 和 3,但不规范*/
(3,,3) /*多逗号读入出错,第一个变量为 3 而第二个则无法成功读入*/
2019 /*变量中值分别为 20 和 19*/
3.14 3.14 /*变量中值分别为 3.14 和 3.14*/
3.143.14 /*变量中值分别为 3.14 和 3.14*/
a /*变量中值为 'a' (实际储存为字符'a'的Ascii码)*/
Hello WorldHelloWorld /*变量中值为 HelloWorld\0 (以'\0'作为串结束符)*/
Hello World /*变量中值为 Hello World (没有串结束符,不能直接printf)*/
by sdust weilinfox
转载请注明原文地址:https://www.cnblogs.com/weilinfox/p/12238612.html
scanf 函数笔记的更多相关文章
- 【学习笔记】【C语言】scanf函数
1. 简介 这也是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>.调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设 ...
- C/C++编程笔记:C语言基础printf()和scanf()函数,大学入门知识
在解释这两个函数之前,为了方便大家更容易理解,我们先来讲讲下面的这幅图. 这个图中的例子其实很简单,我们就是把题目通过输入设备(例如键盘鼠标)传输到计算机中,然后让计算机进行运算得出结果,再然后把 ...
- 4-printf & scanf函数
一.printf函数 这是(printf和scanf)在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h> 1.用法 1> printf(字符串) ...
- C语言scanf函数详细解释
原文链接 函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准 ...
- 黑马程序员-scanf函数
变量的内存:字节和地址:1.变量的存储单位是字节,每个字节都有存储地址.2.不同的数据大小占用的内存带下不同拥有的字节数也是不同的.变量的存储:1.存储是按照,先存储的放在地址教高的位置,优先存储的地 ...
- C语言Scanf函数
C语言的scanf函数 一.变量的内存分析 (一)字节与地址 ①. 内存以字节为单位 每个字节都有自己的内存地址,根据地址就可以找到该字节.整个内存相当于一整个酒店,而酒店以房间为单位,在这里每个房间 ...
- scanf函数
一. 变量的内存分析 1. 字节和地址 为了更好地理解变量在内存中的存储细节,先来认识一下内存中的“字节”和“地址”. 1> 内存以“字节为单位” 0x表示的是十六进制,不用过于纠结,能看懂这些 ...
- scanf函数与输入缓冲区
本文链接:http://www.cnblogs.com/xxNote/p/4008668.html 今天看书的时候遇到scanf函数与缓冲区的问题,产生了一些猜想即:应该有一个指针来记录缓冲区中读取到 ...
- Scanf函数输入字符串
Scanf函数输入字符串 #define _CRT_SECURE_NO_WARNINGS //#pragma warning(disable:4996) #include <stdio.h> ...
随机推荐
- CAS5.3 单点登录/登出/springboot/springmvc
环境: jdk:1.8 cas server:5.3.14 + tomcat 8.5 cas client:3.5.1 客户端1:springmvc 传统web项目(使用web.xml) 客户端2:s ...
- 009.MFC_Spin
数值调节按钮CSpinButtonCtrl属性 Alignment Auto Buddy Set Buddy integer成员函数 SetRange32() SetBase()
- vue基础用法
vue.js是什么 vue.js也称为vue,读音/vju/ 是一个构建用户界面的框架 是一个轻量级MVVM(Model-view-viewModel)框架,和angular,react类似,其实就是 ...
- 对EntityViewInfo的理解
1,EntityViewInfo常常用作bos中接口参数,来做查询用,其中包含了FilterInfo(过滤).Selector(指定属性)以及Sorter(排序) SelectorItemColl ...
- 洛谷P-4782 2-sat+Tarjan
https://www.luogu.org/problemnew/solution/P4782 这里的大佬已经说的够好了 #include<iostream> #include<cs ...
- Java 连接 SQL Server 数据库
//连接数据库 public Connection getConnection(){ //url为绝对路径 String url="jdbc:sqlserver://127.0.0.1:14 ...
- cookies 与session
cookies :存放在浏览器(客户端)的用户信息 - 优点: 可以将数据存在客户端一方: - 缺点: 不安全,可以存放多份,导致服务端占用空间过大 session :存放在服务端的用户信息 - 优点 ...
- VC/c++版本获取现行时间戳精确到毫秒
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数.通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完 ...
- OpenSsl库 Rsa的简单使用
环境的配置可以参考http://www.cnblogs.com/yangyquin/p/5284530.html 网络上传输的数据很容易被抓包,如果不加密,那么网络数 据很容易被窃取,诸如用户名.密码 ...
- 【题解】P2521 [HAOI2011]防线修建(动态凸包)
[题解]P2521 [HAOI2011]防线修建(动态凸包) 凸包是易插入不好删除的东西,按照剧情所以我们时光倒流 然后问题就是维护凸包的周长,支持加入 本来很简单,但是计算几何就是一些小地方经验不足 ...