scanf、printf比cin、cout速度要快,而且很多时候使用cin会超时,但scanf不会超时,建议以后都用scanf处理输入,printf处理输出。
记住以下4点建议:
1. scanf读入double类型只能用%lf,读入float类型只能用%f
2. printf对于double和float都只能用%f,因为printf没有%lf (可能有些系统允许,但是最好坚持使用%f)
3. printf输出string类型要用%s,而且必须使用c_str()将string转为const char*再输出
printf("%s ", a.c_str());
4. 对于string类型,用下述方法输入:先读取char[], 再把char[]转成string。
scanf中的%s遇到空格或者换行就会停止读取,读取之后的strlen(s)和str.length()也是相等的,不会出现问题。
// 方法一 int t; char s[15]; scanf("%s%d", s, &t); string str(s); //使用构造函数 // 方法二 int t; char s[15]; scanf("%s%d", s, &t); string str; str.assign(s); //使用assign成员函数