这三种输入函数在编程语言中有什么区别?
他们是否以不同的方式相互输入?
他们是否以不同的方式相互输入?
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