C语言scanf和printf在刷题中的注意点 (用scanf和printf替换cin和cout,加快速度)

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成员函数
原文地址:https://www.cnblogs.com/FengZeng666/p/12609218.html