scanf
和cin
的利弊:
scanf
:
-
利:耗时短,写法方便输入固定格式,比如scanf(“%*d%d”,&a),可以直接忽略第一个输入,不用创建新对象,再比如scanf(“%1d”,&x[i]),输入3214,中间没有空格,但是用for循环输入%1d,可以每次只截取一个数字来输入,这样输入的就是3,2,1,4数字数组,再比如输入时间格式YY-MM-DD HH:MM:SS,可以用scanf(“%2d-%2d-%2d %2d:%2d:%2d”,&year,&month,&day,&hour,&mintue,&second)
-
弊:不能输入string,如果题目简单没有时间上的紧迫,写scanf会比写cin慢
cin
:
- 利:可以输入string,string本身的好处就不说了,写起来快
- 弊:耗时长,耗时长的原因是c++需要向下c兼容,就是你用cin等c++函数,但是编译器还会预处理scanf等c函数,尽管可以加
ios::sync_with_stdio(0)
;cin.tie(0)
;cout.tie(0)
;手动关闭c的兼容,但是这样会导致你只能用c++的函数,c的所有函数你都用不了,用了就会re(不会报错)