c – getchar_unlocked()VS scanf()VS cin

前端之家收集整理的这篇文章主要介绍了c – getchar_unlocked()VS scanf()VS cin前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这三种输入函数在编程语言中有什么区别?
他们是否以不同的方式相互输入?

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
原文链接:https://www.f2er.com/c/115391.html

猜你在找的C&C++相关文章