CppIODemo1.cpp

#include <iostream>
#include <fstream>
#include <chrono>
#define INPUT_BUFFER_SIZE 1024 * 1024
int main()
{
using namespace std;
cout << "Type an input file name: ";
string filename;
getline(cin, filename);
ifstream ifs(filename, ifstream::in | ifstream::binary);
if (ifs)
{
cout << "Type an output file name: ";
getline(cin, filename);
ofstream ofs(filename, ofstream::out | ofstream::binary);
if (ofs)
{
cout << "Copying file..." << endl;
char buffer[INPUT_BUFFER_SIZE];
chrono::system_clock::time_point startTime = chrono::system_clock::now();
while (!ifs.eof())
{
streamsize numberOfCharacters = ifs.read(buffer, INPUT_BUFFER_SIZE).gcount();
ofs.write(buffer, numberOfCharacters);
}
chrono::system_clock::time_point endTime = chrono::system_clock::now();
float elapsedTime = static_cast<chrono::duration<float, ratio<, >>>(endTime - startTime).count();
cout << "File copied, elapsed time: " << elapsedTime << endl;
}
else
cerr << "Cannot open output file: '" << filename << "'!" << endl;
}
else
cerr << "Cannot open input file: '" << filename << "'!" << endl;
return ;
}

CppIODemo2.cpp

#include <iostream>
#include <fstream>
#define INPUT_BUFFER_SIZE 1024 * 1024
int main()
{
std::cout << "Enter an input file name: ";
std::string filename;
std::getline(std::cin, filename);
std::ifstream ifs(filename, std::fstream::in);
if (ifs.is_open())
{
std::cout << "Enter an output file name: ";
std::getline(std::cin, filename);
std::ofstream ofs(filename, std::fstream::out);
if (ofs.is_open())
{
char buffer[INPUT_BUFFER_SIZE];
while (!ifs.eof())
{
std::streamsize numberOfCharacters = ifs.read(buffer, INPUT_BUFFER_SIZE).gcount();
std::cout.write(buffer, numberOfCharacters);
ofs.write(buffer, numberOfCharacters);
}
}
else
std::cout << "Cannot open file: " << filename << std::endl;
}
else
std::cout << "Cannot open file: " << filename << std::endl;
return ;
}

附带一句:http://en.cppreference.com,此站点为C/C++权威参考手册^_^若不习惯英文,可浏览此站点的中文版http://zh.cppreference.com

最新文章

  1. [翻译]当分发数据库增长到25G时如何解决
  2. 编译gcc
  3. [转]说说C#的async和await
  4. webstorm 注册码
  5. UIDatePicker swift
  6. [Twisted] Test
  7. mac nodejs安装
  8. 【Xilinx-Petalinux学习】-05-OpenCV程序测试
  9. c# Socket通讯中关于粘包,半包的处理,加分割符
  10. 获取IE下载历史的具体实现
  11. PHP内核之旅-4.可变长度的字符串
  12. 关于 Be 主
  13. vue-引入外部js文件的方法和常量
  14. AYUI7 响应式开发
  15. FTP管理常用命令
  16. HDU 1260:Tickets(DP)
  17. Python 内置函数 memoryview
  18. C#中.XSD是什么文件?
  19. 四则运算 Python实现(杨浩政,张兆敏)
  20. 【转】Json判断是否存在某个属性和遍历各个属性和值

热门文章

  1. 2013 年 acm 长春现场赛
  2. spring两个核心IOC、AOP
  3. P2014 选课 (树形动规)
  4. [SCOI2005]最大子矩阵 (动态规划)
  5. 「SDOI2010」古代猪文(bzoj1951)
  6. 如何解决maven archetype加载太慢的方法
  7. 说说icon图标
  8. [MFC] CString小用例
  9. NOJ1203 最多约数问题 [搜索 数论]
  10. array的用法(关于动态选择值)