C/C++ 之输入输出
因为C++向下兼容C,所以有多种输入输出的方式,cin/cout十分简洁,但个人觉得不如scanf/printf来的强大,而且在做算法题时,后者运行速度也快些。
scanf/printf
#include<cstdio>
int main() {
int n;
float a,b
scanf("%d", &n);
scanf("%f/%f", &p,&q); //支持类似的输入
printf("%05d", n); //不足位补0
printf("%.5f", a); //保留小数位
}
sscanf/sprintf
这两个函数并不是用于输入输出,而是类似于string+sacnf/printf,是为了处理字符串问题而生的,将字符串转换为任意类型,或是将任意类型转换为字符串
#include<cstdio>
int main() {
int n;
char str1[100] = "123";
sscanf(str1, "%d", &n); // sscanf的作用是将str1里的内容以%d的格式输入到n中
int a;
double b;
char s1[100]="hello:3.14,2048",s2[100];
sscanf(s1, "%s:%lf,%d", s2, &b, &a); // 复杂的格式转化
int m=123;
char str2[100];
sprintf(str2, "%d", m); // sprintf的作用是将n中的内容以%d格式输出到str2中
int x=10;
double y=20.10;
char s3[100],s4[100]="hello word";
sprintf(s3, "%s:%d:%lf", s4, x, y);
printf("%d %s %lf %d %s %s %s", n,s2,b,a,str2,s2);
}
输出123 hello 3.14 2048 123 hello word:10:20.10
getchar/putchar
这两个函数分别接收和输出一个字符,包括空格和换行符"\n"
用这个函数循环输入到字符数组中时,不会自动向数组末尾加"\0",这个字符的意义是结束符,想用printf函数输出时,没有这个结束符就会输出乱码,因此要手动向结尾加"\0",这也是申明字符数组时总要至少多一个空间的原因。
gets/puts
直接接收字符串,以空格或者换行符作为结束符
C/C++ 之输入输出的更多相关文章
- [译]DbContext API中使用SqlQuery和ExecuteSqlCommand获取存储过程的输入输出参数
水平有限,欢迎指正.原文:http://blogs.msdn.com/b/diego/archive/2012/01/10/how-to-execute-stored-procedures-sqlqu ...
- ECS Linux 服务器解除ssh登陆后被锁定或暂停输入输出的终端
在使用SSH终端(如Xshell)登陆时,若不慎点击 Ctrl + S 按键,会导致终端很像被锁定,输入和输出都无响应. 这是由于操作系统的终端收到指令 Ctrl + S 后,会暂停终端输入输出的刷 ...
- linux中输入输出和重定向问题
输入输出解释 当我们执行shell的时候,每个进程都和三个打开的文件有关系,并使用文件描述符来引用这些文件.但这些文件不容易记忆,所以shell给了相应的文件名: 0:输入文件-标准输入(它的命令是输 ...
- C/C++ 标准输入输出重定向
转载自:http://www.cnblogs.com/hjslovewcl/archive/2011/01/10/2314356.html 这个对经常在OJ上做题的童鞋们很有用.OJ基本都是用标准输入 ...
- Lattice FIFO 使用之FIFO_DC输入输出宽度不同时 的一个注意事项
在使用FIFO_DC的时候,我们知道这个FIFO的一个功能是可以输入输出的数据宽度不一样,比如: 输入数据为128bit,输出数据为16bit,FIFO内部可以实现这样的转换,但是输出的时候是先送出一 ...
- [ACM训练] ACM中巧用文件的输入输出来改写acm程序的输入输出 + ACM中八大输入输出格式
ACM中巧用文件的输入输出来改写acm程序的输入输出 经常有见大神们使用文件来代替ACM程序中的IO,尤其是当程序IO比较复杂时,可以使自己能够更专注于代码的测试,而不是怎样敲输入. C/C++代码中 ...
- C语言的标准输入输出
1. 标准输入输出 标准输入.输出主要由缓冲区和操作方法两部分组.缓冲区实际上可以看做内存中的字符串数组,而操作方法主要是指printf.scanf.puts.gets,getcha.putcahr等 ...
- Linux标准输入输出
linux启动后,会默认打开3个文件描述符,分别是:标准输入standard input 0,正确输出standard output 1,错误输出:error output 2 以后打开文件后.新增文 ...
- [JAVA]HTTP请求应答作输入输出
请求(需要发送数据给别人): URL url = new URL("需要请求的URL连接"); HttpURLConnection httpConnection = (HttpUR ...
- Java—输入输出技术
在Java中,通过java.io包提供的类来表示流,基本的输入输出流为InputStream和OutputStream.从这两个基本的输入输出流派生出面向特定处理的流,如缓冲区读写流.文件读写流等. ...
随机推荐
- 【Python项目】爬取新浪微博签到页
基于微博签到页的微博爬虫 项目链接:https://github.com/RealIvyWong/WeiboCrawler/tree/master/WeiboLocationCrawler 1 实现功 ...
- python几种装饰器的用法
用函数装饰函数 这种比较常见首先定义装饰器函数 def cache(func): data = {} @wraps(func) def wrapper(*args, **kwargs): key = ...
- 【Educational Codeforces Round28】
咸鱼选手发现自己很久不做cf了,晚节不保. A.Curriculum Vitae 枚举一下间断点的位置. #include<bits/stdc++.h> using namespace s ...
- 2->集群架构主机优化流程
集群架构优化流程: 有道笔记分享链接
- 洛谷P1841重要的城市
传送门啦 重要城市有三个性质如下: 1.重要城市能对其他两个不同城市的最短路径做出贡献 2.重要城市具有唯一性,如果两不同城市之间的最短路径有两种中间城市情况,那么这两个中间城市可以彼此代替,就都不能 ...
- redis持久化的两种方式
redis是一个内存型数据库.当redis服务器重启时,数据会丢失.我们可以将redis内存中的数据持久化保存到硬盘的文件中. redis持久化有两种机制.RDB与AOF.默认方式是RDB. 1.RD ...
- Luogu P2310 【loidc,看看海】
各位大佬都用的排序和杨颙大定理,蒟蒻的我怎么也不会做(瑟瑟发抖),那么,就来一发主席树吧.我们知道线段树可以维护区间,平衡树可以维护值域那么,我们可以用线段树套平衡树来解决这个区间值域的问题线段树套平 ...
- volatile 学习笔记
全面理解Java内存模型(JMM)及volatile关键字 正确使用 Volatile 变量 Java内存模型 在并发编程中,需要处理两个关键问题:线程之间如何通信及线程之间如何同步.通信是指线程之间 ...
- sqlserver日期推算(年,季度,月,星期推算)
DECLARE @dt datetime SET @dt=GETDATE() DECLARE @number int SET @number=3 --1.指定日期该年的第一天或最后一天--第一天为1月 ...
- Django杂记
django 中 slice 和 truncatewords 不同用法 django中取一段字符串中的前 N 个字符,可以用 slice和truncatewords ,但是两者是有区别的. djang ...