《算法竞赛入门经典》学习笔记 2.4.4 C++中的输入输出

Posted 月光诗人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《算法竞赛入门经典》学习笔记 2.4.4 C++中的输入输出相关的知识,希望对你有一定的参考价值。

2.4.3 64位整数
输入输出long long除了cin,cout,也可以借助于printf和scanf语句,但对应的占位符缺是和平台与编译器相关的:在Linux中,gcc很同意的用%lld;在Windows中,MinGW的gcc和VC6都需要用%I64d;但VS2008却是用%lld。
2.4.4 C++中的输入输出
问题是经典的“A+B”问题:输入若干对整数,输出每对之和。
第1种方法:

#include <cstdio> //功能和C中的stdio.h很接近,但有些许不同
using namespace std;
int main()
{
    int a, b;
    while (scanf("%d%d", &a, &b) == 2)
        printf("%d\n", a+b);
    return 0;
}

要在C++程序中使用C语言头文件,请去掉扩展名.h,并在最前面加上小写字母c。例如,stdio.h在C++中的新名字是cstdio。另外,第一行中以//开头的是C++特有的“单行注释”,它和C中传统注释(/*和*/)可以混合使用。
需要说明的是:C++中保留着C语言的常用头文件。如果你愿意,可以继续用stdio.h并且省略using namespace std语句。事实上,很多(但不是所有)C程序能不加修改地被C++编译器所编译。
第2种方法:

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

头文件iostream中包含着对输入输出流的定义。
第2种方法也可以修改成文件输入输出流的方法。当然也可以用freopen对文件进行重定向,不过更正统的方法如下:

#include <fstream>
using namespace std;
ifstream fin("aplusb.in");
ofstream fout("aplusb.out");
int main()
{
    int a, b;
    while (fin >> a >> b)
        fout << a + b << "\n";
    return 0;
}

如果想再次使用cin和cout,只需把fin和fout的声明去掉,并加上这样两行即可:

#define fin cin
#define fout cout

比较效率(使用clock()与CLOCKS_PER_SEC)

以上是关于《算法竞赛入门经典》学习笔记 2.4.4 C++中的输入输出的主要内容,如果未能解决你的问题,请参考以下文章

《算法竞赛入门经典(第二版)》pdf

《算法竞赛入门经典(第2版)》pdf下载在线阅读,求百度网盘云资源

算法竞赛入门经典——读书笔记day1

随笔笔记 算法竞赛入门经典 ch3

随笔笔记 算法竞赛入门经典 ch4

笔记算法竞赛入门经典