加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – getchar_unlocked()VS scanf()VS cin

发布时间:2020-12-16 07:50:37 所属栏目:百科 来源:网络整理
导读:这三种输入函数在编程语言中有什么区别? 他们是否以不同的方式相互输入? 1.getchar_unlocked() #define getcx getchar_unlocked inline void inp( int n ) { n=0; int ch=getcx();int sign=1; while( ch '0' || ch '9' ){if(ch=='-')sign=-1; ch=getcx();}
这三种输入函数在编程语言中有什么区别?
他们是否以不同的方式相互输入?

1.getchar_unlocked()

#define getcx getchar_unlocked

 inline void inp( int &n ) 
 {
    n=0;
    int ch=getcx();int sign=1;
    while( ch < '0' || ch > '9' ){if(ch=='-')sign=-1; ch=getcx();}

    while(  ch >= '0' && ch <= '9' )
            n = (n<<3)+(n<<1) + ch-'0',ch=getcx();
    n=n*sign;
  }

2.scanf( “%D”,&安培; n)的

3.cin>将N

输入整数时最少需要一个?

我在c中使用THese头文件,其中所有3个case运行在c中;

#include<iostream>
  #include<vector>
  #include<set>
  #include<map>
  #include<queue>
  #include<stack>
  #include<string>
  #include<algorithm>
  #include<functional>
  #include<iomanip>
  #include<cstdio>
  #include<cmath>
  #include<cstring>
  #include<cstdlib>
  #include<cassert>

解决方法

两点要考虑.

> getchar_unlocked在Windows中被弃用,因为它是线程不安全的版本的getchar().
>除非速度因素是必要的,尽量避免getchar_unlocked.

现在,就速度而言.

getchar_unlocked > getchar

因为没有输入流锁定检查getchar_unlocked,这使得它不安全.

getchar > scanf

因为getchar读取char字符的单个字符,而scanf可以读取c中可用的大多数原始类型.

scanf > cin (>> operator)

因为检查这个link

所以,终于

getchar_unlocked > getchar > scanf > cin

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读