8.1 IO类

#include <iostream>    //标准IO头文件 

8.2 文件输入输出流

#include <fstream>    //读写文件头文件
std::fstream    //从一个文件读 或 写 数据,但是不能同时进行,如正在写文件,则必须关闭后才可以读
std::ifstream //从文件中读取数据
std::ofstream //向一个给定文件写入数据

1.简单的例子

int main()
{
std::string str;
std::istream_iterator<std::string> in_iter; //读文件
std::fstream fstrm("F:\\Temp.txt");
if (fstrm.good())
{
fstrm >> str;
}
fstrm.close(); //写文件
std::ofstream fstrm("F:\\Temp.txt");
fstrm << "2017.9.19yyy" << "\n\r";
fstrm.close(); system("pause");
return ;
}

2.复杂全面的例子:

#include <iostream>
#include "fstream"
#include "sstream"
#include <vector>
#include <string>
using namespace std; int main()
{
//写文件,注意:ofstream::app 每次写操作前均被定为到文件末尾
ofstream ofstrm("h:\\1.txt", ofstream::out | ofstream::in | ofstream::ate); //以读写的方式打开,且每次操作前均定位到文件末尾
//ofstream ofstrm("e:\\1.txt",ifstream::binary); //以二进制方式打开
//ofstream::pos_type mark = ofstrm.tellp(); //获取当前标记位置
ofstrm.seekp(ofstrm.beg);
ofstrm << "vbbb l m" << endl;
ofstrm.close();
////读文件,整行读取
// //创建一个ifstream(文件流)类型的ifstrm(只读模式),并打开e:\\1.txt文件与之关联,当给构造函数提供实参时,open会自动被调用
// ifstream ifstrm("e:\\1.txt",ifstream::in);
// if(!ifstrm)
// return -1;
//
// vector<string> vecStrArr;
// string strArr;
//
// while (getline(ifstrm,strArr)) //一组字符顺序流入strArr以换行符结束
// {
// vecStrArr.push_back(strArr);
//
// //内存流的使用
// istringstream iss(strArr);
// ostringstream oss;
// string str;
// while (iss>>str)
// {
// oss<<str;
// }
// cout<<oss.str()<<endl;
// }
//// for(int i = 0; i < vecStrArr.size(); i++)
//// {
//// cout<<vecStrArr.at(i)<<endl;
//// }
//// bool bIsEnd = ifstrm.eof(); //判断是否到达文杰结束位置
// ifstrm.close();
//
////读文件,单个字符读取
// ifstrm.open("e:\\1.txt",ifstream::in|ifstream::app);
// //bool bIsOpen = ifstrm.is_open(); //检测文件是否打开成功,对于已经打开的文件调用open则不能检测
// if(!ifstrm.good()) //检测流是否处于有效状态
// return -1;
//
// vector<string> vecStr;
// while ( ifstrm>>strArr) //一组字符顺序流入strArr,以空格、换行符等结束
// {
// vecStr.push_back(strArr);
// }
//// for(int i = 0; i < vecStr.size(); i++)
//// {
//// cout<<vecStr.at(i)<<endl;
//// }
// ifstrm.close(); system("pause");
return ;
}

8.3 string 流

#include <sstream>    //读写string流头文件
std::stringstream    //从string流读 或 写 数据
std::ostringstream //向string流写数据(可以是基本类,也可以是重载<<的自定义类)
std::istringstream //从string流读数据

string流应用于string与基本类型之间的转换

#include <iostream>
#include <sstream>
#include <string> int main()
{
std::ostringstream sstream;
char *pChar = "abc"; //其他任何的格式转为string
sstream << "(" << pChar << ")" << << "ddd" << *pChar;
string str = sstream.str(); //str的内容:(abc)123ddda
//CString cstr = str.c_str(); //string转为CString //string 转为char*
const char *p = str.data();
char *p1 = const_cast<char*> (str.data()); //将string转换为cha(可选字符长度)
char pch[] = "";
std::string str = "4h5j.";
str.copy(pch, ); cout << str;
system("pause");
}

8 . IO类-标准IO、文件IO、stringIO的更多相关文章

  1. C标准库函数--文件IO操作函数。

    C标准库文件读写函数总结:都是对文件流进行输入输出的函数分为对文件的有格式读写以及无格式读写 一.文件的无格式读写根据每次读写字符的数量,分为三类:1.按字符读写文件 按字符读有三个函数:以下三个函数 ...

  2. Qt-QML-C++交互实现文件IO系统-后继-具体文件IO的实现

    在上一篇文章中,我大致将这个QML中的文件IO类搭出了大致的框架,那么,今天抽时间写了一点文件的读写,这里我使用的文件流来读写文件. 文件结构如图 在QML中调用这个类了,就见简单的读取了一个JSON ...

  3. 不带缓存IO和标准(带缓存)IO

    linux对IO文件的操作分为: 不带缓存:open read.posix标准,在用户空间没有缓冲,在内核空间还是进行了缓存的.数据-----内核缓存区----磁盘 假设内核缓存区长度为100字节,你 ...

  4. NIO【同步非阻塞io模型】关于 文件io 的总结

    1.前言 这一篇随笔是写 NIO 关于文件输入输出的总结 /* 总结: 1.io操作包括 socket io ,file io ; 2.在nio模型,file io使用fileChannel 管道 , ...

  5. Linux系统编程(2)——文件与IO之系统调用与文件IO操作

    系统调用是指操作系统提供给用户程序的一组"特殊"接口,用户程序可以通过这组"特殊"接口来获得得操作系统内核提供的特殊服务.在linux中用户程序不能直接访部内核 ...

  6. 标准io与文件io

    A: 代码重复: 语句块1: while(判断) { 语句块2: 语句块1: } 上面可以改写为: while(1) { 语句块1: if(判断) break: 语句块2: } B: 标准IO和文件I ...

  7. APUE学习笔记3_文件IO

    APUE学习笔记3_文件IO Unix中的文件IO函数主要包括以下几个:open().read().write().lseek().close()等.这类I/O函数也被称为不带缓冲的I/O,标准I/O ...

  8. 转:Linux 文件IO理解

    源地址http://blog.csdn.net/lonelyrains/article/details/6604851 linux文件IO操作有两套大类的操作方式:不带缓存的文件IO操作,带缓存的文件 ...

  9. 2.Linux文件IO编程

    2.1Linux文件IO概述 2.1.0POSIX规范 POSIX:(Portable Operating System Interface)可移植操作系统接口规范. 由IEEE制定,是为了提高UNI ...

随机推荐

  1. elasticsearch 一、环境配置

    简介 ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例,是基于Lucene构建的.支持时间时间索引和全文检索.官网:http://www.elastics ...

  2. 四大中三家已面向客户推出机器人业务解决方案?别逗了,先用机器人自我革命吧! post by 上海嘉冰信息技术

    近日,四大会计师事务所推出的机器人财务及业务解决方案的话题引爆朋友圈.鉴于该话题的前沿性以及对财务及业务领域从业人员未来职业发展有巨大的影响,引起热门讨论在所难免.小编先来汇总下目前国际四大会计师事务 ...

  3. ThinkPHP 文件上传到阿里云OSS上(干货)

    参考:http://www.thinkphp.cn/extend/789.html 1.前往阿里云github下载SDK包:https://github.com/aliyun/aliyun-oss-p ...

  4. SpringCloud(一)浅谈SpringCloud

    前言 现在微服务实在是太火了,所以我们必不可少的是要学习一下SpringCloud了,服务化的核心就是将传统的一站式应用 根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享D ...

  5. java interface接口的传值方法

    A 类 package interface_test; public class A { private IPresenter ip; public A(IPresenter ip) { this.i ...

  6. 史上最全Java面试题整理(附参考答案)

    下列面试题都是在网上收集的,本人抱着学习的态度找了下参考答案,有不足的地方还请指正,更多精彩内容可以关注我的微信公众号:Java团长 1.面向对象的特征有哪些方面? 抽象:将同类对象的共同特征提取出来 ...

  7. 2. ansible-playbook 条件语句-内部变量使用

    内部变量指的是把变量定义在playbook里面或者是执行结果作为变量 循环语句-标准Loops [root@LeoDevops playb]# cat p_loop.yaml - hosts: u12 ...

  8. [Benchmark] Codeflaws: A Programming Competition Benchmark for Evaluating Automated Program Repair Tools

    Basic Information Publication: ICSE'17 Authors: Shin Hwei Tan, Jooyong Yi, Yulis, Sergey Mechtaev, A ...

  9. Writing custom protocol for nanomsg

    http://vitiy.info/writing-custom-protocol-for-nanomsg/ nanomsg is next version of ZeroMQ lib, provid ...

  10. SQLite可视化工具SQLite studio

    特点: 1.轻量级2.独立性,没有依赖,无需安装3.隔离性 全部在一个文件夹系统4.跨平台 支持众多操作系统5.多语言接口 支持众多编程语言6.安全性 事物,通过独占性和共享锁来实现独立事务的处理,多 ...