C++文件IO操作的简单示例
2024-09-06 09:01:30
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
最新文章
- [翻译]当分发数据库增长到25G时如何解决
- 编译gcc
- [转]说说C#的async和await
- webstorm 注册码
- UIDatePicker swift
- [Twisted] Test
- mac nodejs安装
- 【Xilinx-Petalinux学习】-05-OpenCV程序测试
- c# Socket通讯中关于粘包,半包的处理,加分割符
- 获取IE下载历史的具体实现
- PHP内核之旅-4.可变长度的字符串
- 关于 Be 主
- vue-引入外部js文件的方法和常量
- AYUI7 响应式开发
- FTP管理常用命令
- HDU 1260:Tickets(DP)
- Python 内置函数 memoryview
- C#中.XSD是什么文件?
- 四则运算 Python实现(杨浩政,张兆敏)
- 【转】Json判断是否存在某个属性和遍历各个属性和值