引言
今天刷题,写了好久写完了,一提交0分,改了好久没改对1分,看了一下别人的代码,又简洁又直观,代码量又少,还是满分,心理不平衡了,仔细看了一下,对输入输出的处理处理的好好。吃了这方面的亏,干脆借着这个机会仔细整理一下常见的读取输入的方法,不能再吃这个亏了。。。
该文章是写给新手看的,ACM大佬请移步...
导入io库
导入根据不同的环境,推荐使用不同的导入方式
#include<cstdio>//cpp环境下推荐
#include<stdio.h>//纯c环境
输入
各种输入方法
scanf
scanf()
是最常用的接受输入的方法,使用方式
scanf(控制串,&var1,&var2,...);
其中控制串由三部分组成:
- 格式说明符:前缀为%,用于告诉方法下次要读入何种数据类型的数据,并顺次放到方法后的变量中.
- 空白符::由空格(
" "
)、制表符("t"
)和新行符("n"
)表示,让方法在输入流中忽略一个或多个空白符(只要存在一个就可以忽略多个)。控制串中的空白符使scanf()
在输入流中读,但不保存结果,直到发现非空白字符为止。 - 非空白符:除去格式说明符和空白符以外的其他字符,如逗号,分号,于空白符相同,
scanf()
在输入流中读,但不保存结果。
如scanf("%d/%d,&a,&b)
,输入"12/3"
,方法会忽略"/"
,但如果输入"12 3"
或者"12,3"
,方法不会忽略掉空格或者逗号
格式说明符
以下是scanf方法中的格式说明符,需要注意的是,为了规范,格式说明符和方法后的参数数量最好一致,不一致有可能会出错,有可能不会出错
我本以为一定会出错,但是意外的尝试出了一个没有出错的情况因此没有办法绝对的认为一定会出错
我没有刷过太多的算法题,但是在我刷过的有限的算法题中,比较常用的大概就是%d
,%[]
,%c
,%s
,大部分算法题的输入都是整数和字符串组成的。
但也有一些算法题的输入比较奇特,这时可能会用到%o
,%x/%X
,
基本示例
读入整数
读入一个整数: