scanf与printf的强大

习惯了用c++,常常会忽略了scanf和printf在某些题的巧妙或是便捷之处。

1. scanf
很多题目要求的输入,一般是整数、字符串或数组,一般用cin就可以;但当我们输入一个字符串,有时我们可以根据题目要求,将字符串既输入数字又输如字符甚至其他固定符号比如正负号小数点时,我们可以用scanf输入。
例如PAT中科学计数法那题,输入一个科学计数法的数字,里面既有小数点又有数字,甚至还有E,如果用string,还得将字符转换成数字,但如果用scanf就十分简单,所有的输入可以全看作字符,不用考虑转换成数字的问题

+1.23400E-03
scanf("%c%c.%[0-9]E%c%d",&h,&a[0],a+1,&e);

非常绝,把一个字符串同时输入了符号、小数点、数组、指数,根据各部分特点进行输入判断,非常方便。

%[] 的意思是:读入此集合所限定的那些字符。
例如 %[A-Z] 是指接受大写字母,一旦遇到非大写字母便停止接受
%[^]是指不要读入此集合所限定的那些字符。
例如 % [^A-Z] 是指不接受大写字母,一旦遇到大写字母便停止接受。

2. printf
当输出固定几位数时,用printf
特别是有些0999这种,题目要求固定4位输出

猜你喜欢

转载自blog.csdn.net/weixin_44549439/article/details/112981654