C++学习笔记10_输入输出流.文件读写
//从键盘输入到程序,叫标准input;从程序输出到显示器,叫标准output;一并叫标准I/O
//文件的输入和输出,叫文件I/O
cout<<"hellow word";//不加上<<endl;实际上只会先放到缓冲区
char ch=cin.get();//读取一个字符
int main()
{
char ch2;
cin.get(ch2);//会从缓冲区取走1个字符,如果没有会阻塞
char buf[256];
cin.get(buf,256);//会从缓冲区读
cin.getline(buf,256);
char a= cin.peek();//窥探一下缓冲区,复制第一个字符出来
}
文件操作:
ifstream,继承istream
ofstream,继承ostream
//和C#一样,通过流读写文件,但是C#通过FileStream的创建,用参数控制就可以了。
读文件操作
#include <fstream>
void CopyFile()
{
char* fileName="C:\\Users\\Destop\\souce.txt";
char* outputfileName= "C:\\Users\\Destop\\target.txt";
ifstream ism(fileName,ios::in); //有参构造,以只读方式打开文件
ostream osm(outputfileName,ios::out);//只写
//ostream osm(outputfileName , ios::out | ios::app);//只写,并且在文件末尾追加
//或者先无参构造,然后ism..open(fileName,ios::in);
if( !ism )//肯定重载了“!”操作符
{
cout<<"打开失败"<<endl;
return;
}
char ch;
while(ism.get(ch))
{
osm.put(ch);
}
ism.close();//关闭
osm.close();//关闭
}
二进制文件操作:对象序列化
class Person
{
public :
int age;
int id;
Person(int age,int id);
Person();
}
void WritePerson()
{
Person p1(10,20),p2(20,10);;
char* outputfileName= "C:\\Users\\Destop\\target.txt";
ostream osm(TargetName,ios::out | ios::binary);//以二进制的方式写
osm.write((char*)&p1,sizeof(Person));//专门以二进制的方式写
osm.write((char*)&p2,sizeof(Person));//将第二个对象也写进去
osm.close();
}
void ReadPerson()
{
char* outputfileName= "C:\\Users\\Destop\\target.txt";
ifstream ism(outputfileName, ios::in | ios::binary);//以二进制方式读。
Person p1,p2;
ism.read((char*)&p1,sizeof(Person));
ism.read((char*)&p2,sizeof(Person));
ism.close();
}
C++学习笔记10_输入输出流.文件读写的更多相关文章
- C学习笔记(8)--- 文件读写
1.C 文件读写: 一个文件,无论它是文本文件还是二进制文件,都是代表了一系列的字节.C 语言不仅提供了访问顶层的函数,也提供了底层(OS)调用来处理存储设备上的文件. a.打开文件: FILE *f ...
- c++学习笔记01-输入输出流&&文件输入输出操作
const int size=50等于#define size 50 字符串默认以0结尾: 一.输入输出流 cin.get()会从输入中取走一个字符: cin.peek()会从输入中检测第一个字符: ...
- java 学习笔记之 流、文件的操作
ava 学习笔记之 流.文件的操作 对于一些基础的知识,这里不再过多的解释, 简单的文件查询过滤操作 package com.wfu.ch08; import java.io.File; import ...
- 【转】iphone 输入/输出流异步读写数据
原文:iphone 输入/输出流异步读写数据 分类: iphone2012-05-30 14:50 2484人阅读 评论(1) 收藏 举报 iphoneattributesinterfacepaths ...
- Java NIO 学习笔记(四)----文件通道和网络通道
目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...
- python学习笔记(六)文件夹遍历,异常处理
python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...
- C++学习笔记之输入、输出和文件
一.流的概念 数据从内存的一个地址移动到另一个地址称为数据流动——流操作 流操作是通过缓冲区(buffer)机制实现的. 缓冲区:内存的一块区域——用作文件与内存交换数据. 数据从文件中读出:文件 → ...
- tensorflow学习笔记——多线程输入数据处理框架
之前我们学习使用TensorFlow对图像数据进行预处理的方法.虽然使用这些图像数据预处理的方法可以减少无关因素对图像识别模型效果的影响,但这些复杂的预处理过程也会减慢整个训练过程.为了避免图像预处理 ...
- AntDesign vue学习笔记(七)Form 读写与图片上传
AntDesign Form使用布局相比传统Jquery有点繁琐 (一)先读写一个简单的input为例 <a-form :form="form" layout="v ...
随机推荐
- MySQL数据库从复制及企业配置实践
在实际生产中,数据的重要性不言而喻: 如果我们的数据库只有一台服务器,那么很容易产生单点故障的问题,比如这台服务器访问压力过大而没有响应或者奔溃,那么服务就不可用了,再比如这台服务器的硬盘坏了,那么整 ...
- TensorFlow2.0(五):张量限幅
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- linux下安装Elasticsearch
一.简单介绍: Elasticsearch提供了近乎实时的数据操作和搜索功能,es集群中所有节点可以一起提供索引和搜索功能,能够相互发现彼此和自动地加入到集群中 二.基础概念: 1.索引: 表征的文档 ...
- vue.js 实战 todo list
vue.js 起源 vue.js 的作者是尤雨溪,是一名中国人,之前在谷歌工作,现在在全职维护 vue 项目. vue.js 是 2014 年推出来的.现在已经更新到 2.x 版本,3.0 版本会在 ...
- Spring Boot 2.X(一):入门篇
什么是 Spring Boot Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架遵循"约定优于配置& ...
- 程序员修神之路--设计一套RPC框架并非易事
菜菜哥,我最近终于把Socket通信调通了 这么底层的东西你现在都会了,恭喜你离涨薪又进一步呀 http协议不也是利用的Socket吗 可以这么说,http协议是基于TCP协议的,底层的数据传输可以说 ...
- slf4j+logback&logback.xml
添加maven依赖 <dependencies> <!--https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> ...
- 【TencentOS tiny】深度源码分析(8)——软件定时器
软件定时器的基本概念 TencentOS tiny 的软件定时器是由操作系统提供的一类系统接口,它构建在硬件定时器基础之上,使系统能够提供不受硬件定时器资源限制的定时器服务,本质上软件定时器的使用相当 ...
- linux上安装LAMP笔记
B哥最近在参加比赛,需要把一个php项目部署到服务器上,故此在linux上安装LAMP环境,用于部署项目,第一次安装,做点儿笔记记录一下. 安装条件: Redhat或者CentOS linux环境已装 ...
- C#学习--SQL server数据库基本操作(连接、增、删、改、查)封装
写在前面: 在日常的工作中,通常一个项目会大量用的数据库的各种基本操作,因此小编几个常见的数据库的操作封装成了一个dll方便后续的开发使用.SQLserver数据库是最为常见的一种数据库,本文则主要是 ...