C++萌新#不懂就问,求大佬解惑

P1001 A+B Problem

ELSABABY2016 @ 2023-01-01 12:00:36

代码:

 #include<iostream>
using namespace std;
int main()
{
    int a,b;
    cin>>a>>b;
    cout<<a+b<<endl;
    return 0;
} 

题解:

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    int a,b;
    cin >> a >> b;
    cout << a+b << endl;
    return 0;
}

不懂就问,求大佬解惑

首先说一下:我的代码编译成功了,AC

然后,我去看了下题解,对比发现:题解比我的代码多一行#include <cstdio>

后来,我查了百度,但仅仅是查了,没懂,所以各位大佬解惑时,能不能稍微通俗易懂一点

问题如下:

  • 头文件cstdio有什么用处?

  • 头文件cstdio和头文件iostream有什么区别?

  • 为什么此题用了头文件iostream,还要用头文件cstdio?


by c_cpp_a @ 2023-01-01 12:23:46

还有getchar()读入一个字符、gets()(C++14后不支持)读入字符数组、puts()(已经弃用)输出字符数组、putchar()输出一个字符


by ELSABABY2016 @ 2023-01-01 12:24:09

@liangbowen 好的,谢谢,你好厉害啊


by ELSABABY2016 @ 2023-01-01 12:26:54

@c_cpp_a 谢谢,你回答的好详细啊,懂的好多诶


by lianchanghua @ 2023-01-01 12:28:04

@ELSABABY2016 1.使用头文件cstdio可以使用scanf,printf等格式化输入输出,如下:

#include<cstdio>
using namespace std;
int main(){
    int a,b;
    scanf("%d%d",a,b);
    printf("%d%d",a+b);
    return 0;
}

2.一个用cin,cout,另一个用scanf,printf(区别:scanf和printf的速度更快一些)

3.可能是他习惯用格式化输入输出,于是浅意识加了此头文件

附加:scanf和printf的好处:

1.速度快(省得TLE)

2.保留小数方便

比如保留俩位小数
printf("%.2f",你要保留的参数)

cout的话很繁琐,我好久没用,记不清了

但用string是不要轻易使用


by c_cpp_a @ 2023-01-01 12:28:49

@ELSABABY2016 可以买C++ PrimerC++ Primer Plus阅读,里面有这方面的语法知识。


by c_cpp_a @ 2023-01-01 12:30:29

@lianchanghua 补充一下,cincout可以使用:

ios::sync_with_stdio(false);

加速,加速后速度与scanfprintf差不多


by ELSABABY2016 @ 2023-01-01 12:30:32

@c_cpp_a 好的,谢谢推荐


by ELSABABY2016 @ 2023-01-01 12:31:42

@c_cpp_a 这个是加在代码的什么地方啊


by liangbowen @ 2023-01-01 12:32:37

@ELSABABY2016 加在主函数开头即可。


by ELSABABY2016 @ 2023-01-01 12:36:48

@liangbowen 好的,谢谢


上一页 | 下一页