cin输入更方便:

首先,cin 是个C++类型对象,它的类型是basic_istream,scanf 是个不定参数的函数,
其次,cin 所属的类重载了 >> 运算符,使输入更简单了,比如 
double d; cin>>d;
而 scanf 不一样的,
double d;scanf("%lf",&d);
看起来麻烦一点。
另外,cin 也更安全,不会发生内存溢出。
char c; scanf("%lf",&c); //这时需要8个字节的空间,但只提供一个,内存溢出。
而 cin 也更安全
char c;cin>>c; //只输入字符,不会溢出

从底层上来说,C++ 的 cin 与 C语言的 scanf 都采用 stdin 作为输入源, 但cin和scanf 采用了不同的缓冲区,可以通过 ios 头文件里面的 sync_with_stdio () 函数设置缓冲区共享,使cin和scanf 共享缓冲区。
C++也可以改变输入源,但这样很复杂。
其实,C++对 stdin 进行了封装,用流和迭代器进行了转变了流的概念而已,而C的scanf直接操作 stdin而已

scanf 比 cin 更快,用cin输入超时是常有的事~

最新的G++,cin已经比scanf快了,在scanf超时的情况下可以尝试使用G++提交

对于字符:cin的输入忽略空格和回车

 

cin 与 scanf 的不同的更多相关文章

  1. 关于cin,getchar(),scanf()的注意事项(转)

      问题描述一:(分析scanf()和getchar()读取字符) scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的.但是有时候却就是因为使用这些 ...

  2. while ((ch = getchar()) != EOF)中ch定义为char还是int型?cin、scanf等如何结束键盘输入

    2013-07-09 18:55:42 EOF是文件的结束符,具体可以作为文本文件的结束符,也可以作为键盘输入char类型数据时的结束符.对于不同的系统,EOF的定义可能不同,一般定义为-1.因为ch ...

  3. 标准输入的原理:cin与scanf

    1.cin 该方法 1)假设cin读取整数.会自己主动忽略换行和空格.遇到文件结束标记.cin  >> a返回的数false     int a;     while(cin >&g ...

  4. cin 和scanf,scanf比cin快很多

    //#include <iostream> #include <stdio.h> //#include <fstream> //using namespace st ...

  5. c++获取键盘输入cin、scanf使用详解

    cin是c++标准,scanf是在c中使用的 #include<cstdio> #include<iostream> #include<cstring> using ...

  6. cin和scanf的速度差别

    好长时间没有遇到这种问题了,以前虽然知道scanf比cin快,但是没想到快这么多,见图. 50万的数据. scanf输入: cin输入: 网上说用std::ios::sync_with_stdio(f ...

  7. 一个能让cin和scanf 一样快的方法:

    cin慢是有原因的,其实默认的时候,cin与stdin总是保持同步的,也就是说这两种方法可以混用,而不必担心文件指针混乱,同时cout和stdout也一样,两者混用不会输出顺序错乱.正因为这个兼容性的 ...

  8. C++-cin与scanf cout与printf效率问题

    http://blog.csdn.net/l2580258/article/details/51319387 void cin_read_nosync() { freopen("data.t ...

  9. [笔记]cin、cout与scanf、printf的效率差异对比分析

    之前上传UVa227 puzzle时,好不容易AC了,但发现自己用时50(ms),而在VJ上看到人家都是40ms.20ms,于是打开一个20ms的代码查看人家强在哪里.但结果研究了半天感觉差不多,于是 ...

随机推荐

  1. foreach 跟volist 有什么区别?

    <foreach name="list" item="vo">{$vo.id}{$vo.name}</foreach>Foreach标签 ...

  2. Servlet基础知识

    基本知识一.Web结构1.两种应用程序 ①桌面应用程序:QQ.CS.MyEclipse.Office.DW.360.浏览器等必须下载.安装.桌面快捷方式.注册表信息.操作系统后台服务.占用操作系统端口 ...

  3. APUE读书笔记:进程控制

    重点函数:fork,exit,_exit 一.fork 函数原型: #include <unistd.> pid_t fork(void) 函数说明:fork函数将创建一个子进程,该函数调 ...

  4. CentOS7 PostgreSQL 主从配置( 二)

    同步流复制配置PostgreSql的流复制是异步的,缺点是Standby上的数据落后于主库上的数据,如果使用Hot Standby做读写分离,就会存在数据一致性的问题.PostgreSql9.1版本后 ...

  5. MVC 项目中又一新方法实现依懒注入 (AutoFac)

    详情请查看:http://docs.autofac.org/en/latest/integration/mvc.html#quick-start

  6. Unity 的ICallHander在C#项目中实现注入

    项目包引用: Install-Package Unity.Interception 创建项目的接口和其实类: public interface ICalculator { double Calcula ...

  7. PHP数学函数试题

    1.求绝对值的函数是什么? 2.在任意进制之间转换数字的函数是什么? 3.二进制转换为十进制,十进制转换为二进制,十六进制转换为十进制,十进制转换为十六进制,八进制转换为十进制,十进制转换为八进制的函 ...

  8. flowers

    问题大全 Do you like flowers?(Why?) What flowers do you like?(why?) What is your favorite flower? Are fl ...

  9. 制作 macOS Sierra 正式版U盘USB启动安装盘方法教程 (全新安装 Mac 系统)

    使用命令行创建制作 macOS Sierra 正式版 USB 安装盘 1.准备一个 8GB 或更大容量的 U盘,并备份好里面的所有资料. 2.下载好 macOS Sierra 正式版的安装程序(app ...

  10. UICollectionView之自定义Layout

    #import <UIKit/UIKit.h> @interface WQViewController : UIViewController - (id)initWithFrame:(CG ...