Loading

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\n", 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成员函数

 

posted @ 2020-03-31 22:37  拾月凄辰  阅读(718)  评论(1编辑  收藏  举报