C++文件IO操作的简单示例
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
C++文件IO操作的简单示例的更多相关文章
- 文件IO操作
前言 本文介绍使用java进行简单的文件IO操作. 操作步骤 - 读文件 1. 定义一个Scanner对象 2. 调用该对象的input函数族进行文件读取 (参见下面代码) 3. 关闭输入流 说明:其 ...
- Linux文件IO操作
来源:微信公众号「编程学习基地」 目录 文件操作 Linux文件类型 Linux文件权限 修改文件权限 Linux error 获取系统调用时的错误描述 打印错误信息 系统IO函数 open/clos ...
- 树莓派学习笔记——使用文件IO操作GPIO SysFs方式
0 前言 本文描写叙述假设通过文件IO sysfs方式控制树莓派 GPIO端口.通过sysfs方式控制GPIO,先訪问/sys/class/gpio文件夹,向export文件写入GPIO编号, ...
- 9.2 Go 文件IO操作
9.2 Go 文件IO操作 1.1.1. bufio包 带有缓冲区的IO读写操作,用于读写文件,以及读取键盘输入 func main() { //NewReader返回一个结构体对象指针 reader ...
- Linux学习记录--文件IO操作相关系统编程
文件IO操作相关系统编程 这里主要说两套IO操作接口,各自是: POSIX标准 read|write接口.函数定义在#include<unistd.h> ISO C标准 fread|fwr ...
- QML从文件加载组件简单示例
QML从文件加载组件简单示例 文件目录列表: Project1.pro QT += quick CONFIG += c++ CONFIG += declarative_debug CONFIG += ...
- linux文件IO操作篇 (一) 非缓冲文件
文件IO操作分为 2 种 非缓冲文件IO 和 缓冲文件IO 它们的接口区别是 非缓冲 open() close() read() write() 缓冲 fopen() fclose() fread() ...
- imx6用文件io操作gpio
具体请参考: http://blog.csdn.net/u014213012/article/details/53140781 这里要注意的是: 要让linux支持文件io方式操作gpio,首先驱动必 ...
- Java文件IO操作应该抛弃File拥抱Paths和Files
Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream;import java.nio.file.FileSystem; ...
随机推荐
- 安卓ImageView.src设置图片拉伸、填满控件的方法
代码改变世界 安卓ImageView.src设置图片拉伸.填满控件的方法 需要给你的ImageView布局加上Android:adjustViewBounds="true"
- iossharesdk微信登录出错
只用下面的初始化就行了 // //添加微信应用 注册网址 http://open.weixin.qq.com // [ShareSDK connectWeChatWithAppId:mod ...
- Python之Regular Expressions(正则表达式)
在编写处理字符串的程序或网页时,经常会有查找符合某些复杂规则的字符串的需要.正则表达式就是用于描述这些规则的工具.换句话说,正则表达式就是记录文本规则的代码. 很可能你使用过Windows/Dos下用 ...
- [BZOJ1583] [Usaco2009 Mar]Moon Mooing 哞哞叫(队列)
传送门 思想有点像蚯蚓那个题 #include <cstdio> #define N 4000001 #define LL long long #define min(x, y) ((x) ...
- 设置java、maven环境变量(怕麻烦以后直接来这里复制)
这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bash_profile文件就可以了. ·用文本编辑器打开用 ...
- Gty的妹子树(bzoj 3720)
Description 我曾在弦歌之中听过你, 檀板声碎,半出折子戏. 舞榭歌台被风吹去, 岁月深处尚有余音一缕…… Gty神(xian)犇(chong)从来不缺妹子…… 他来到了一棵妹子树下,发现每 ...
- SPFA的两个(卡时)优化
SPFA算法有两个优化算法 SLF 和 LLL: SLF:Small Label First 策略,设要加入的节点是j,队首元素为i,若dist(j)<dist(i),则将j插入队首,否则插入队 ...
- BZOJ 4034 [HAOI2015]树上操作(树链剖分)
题目链接 BZOJ4034 这道题树链剖分其实就可以了. 单点更新没问题. 相当于更新 [f[x], f[x]]这个区间. f[x]表示树链剖分之后每个点的新的标号. 区间更新的话类似DFS序,求出 ...
- android 环境变量配置,以及sdcard配置
第一步,打开环境变量配置窗口.右击计算机,属性-高级系统设置-环境变量. 第二步,添加android系统环境变量.在系统变量下,选择path,点击编辑,然后在最前面输入android sdk开发工具, ...
- pnputil
http://mb.yidianzixun.com/article/0FYSZgnB?s=mb&appid=mibrowser C:\Users\Administrator>pnputi ...