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.从这两个基本的输入输出流派生出面向特定处理的流,如缓冲区读写流.文件读写流等. ...
随机推荐
- [转]Laplace算子和Laplacian矩阵
1 Laplace算子的物理意义 Laplace算子的定义为梯度的散度. 在Cartesian坐标系下也可表示为: 或者,它是Hessian矩阵的迹: 以热传导方程为例,因为热流与温度的梯度成正比,那 ...
- 十五、springboot集成定时任务(Scheduling Tasks)(二)之(线程配置)
配置类: /** * 定时任务线程配置 * */ @Configuration public class SchedulerConfig implements SchedulingConfigurer ...
- 三、springboot热部署
1.spring-boot-devtools 实现热部署 spring-boot-devtools 最重要的功能就是热部署.它会监听 classpath 下的文件变动,并且会立即重启应用. <d ...
- 关于Unity启动时间过长(启动黑屏时间长)的问题!!! 牛逼... 思路不错...
http://blog.csdn.net/u012169685/article/details/52068809
- Redis相关链接
Redis 教程 http://www.runoob.com/redis/redis-data-types.html Python操作redis学习系列之(集合)set,redis set详解 (六) ...
- 线性表应用--Josephus问题的解法(Python 版)
线性表应用 --Josephus问题的解法(Python 版) Josephus问题描述:假设有n个人围坐一圈,现在要求从第k个人开始报数,报到第m个数的人退出.然后从下一个人开始继续报数并按照相同的 ...
- React 学习二 组件
React的一个最大的特点就是组件化的开发模式.今天就来试一下: <!DOCTYPE html> <html> <head> <meta charset=&q ...
- android入门问题--R文件丢失
链接 新手刚入门as,发现新创建的项目总是出错 Error:Execution failed for task ':app:mergeDebugResources'. > Error: ja ...
- web项目引入extjs小例子
一个新的项目,前端用extjs实现!分享一下extjs开发的准备工作! 首先去下载extjs的资源包,这里我是随便在网上下载的! 打开之后 ,目录是这样的! 需要关注的几个文件夹: builds:压缩 ...
- **PHP转义Json里的特殊字符的函数
http://www.banghui.org/11332.html 在给一个 App 做 API,从服务器端的 MySQL 取出数据,然后生成 JSON.数据中有个字段叫 content,里面保存了文 ...