您的位置:首页 > 理论基础 > 数据结构算法

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

2016-06-25 09:29 344 查看
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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: