cout 是 console output 缩写

程序 和键盘 之间有一个输入缓冲区

程序 和 显示器 之间有一个输出缓冲区

#include<iostream>
#include<windows.h>
#include<iomanip>
using namespace std;
#if 0
cout << "dd"; //全局流对象,默认和显示器关联
cin;
cerr; //标准错误 没有缓冲区  输出数据到显示器
clog;  //标准日志 有缓冲区 输入数据到显示器
#endif//标准输入流 cin.get()从缓冲区取数据,若是没有则阻塞
void test01() {//char ch;//while ((ch = cin.get())!=EOF) {  //EOF结束符:Ctrl+Z   //  cout << ch << endl;//}//cin.getchar ch2;//cin.get(ch2);  //读取一个字符char buf[256] = { 0 };//cin.get(buf, 256); //从缓冲区读一个字符串cin.getline(buf, 256);  //获得一行数据不会读取换行符,\n之前的数据cout << buf;
}//cin.ignore() 忽略当前字符
void test02() {char ch;cin.get(ch);  从缓冲区读数据, 为空阻塞cout << ch << endl;cin.ignore(); //忽略当前字符,从缓冲区取走cin.ignore(2); //忽略几个字符cin.ignore(10, '\n'); //若前十个都没有字符都没有\n,则忽略十个,只有在10个之前发现\n,则都不忽略cin.get(ch);cout << ch << endl;
}//cin.peek  查看缓冲区第一个字符
void test03() {cout << "please input array or string:" << endl;char ch;ch=cin.peek();  //偷窥一下缓冲区,返回第一个字符if(ch >= '0' && ch <= '9'){int number;cin >> number;cout << "input number" << number << endl;}else {char buf[256] = { 0 };cin >> buf;cout << "the string is:" << buf << endl;}
}//cin.putback将数据拿回到缓冲区  cin.get从缓冲区拿走数据
void test04() {cout << "please input string or number:" << endl;char ch;cin.get(ch);  //从缓冲区取走一个字符if (ch >= '0' && ch <= '9') {//ch放回到缓冲区cin.putback(ch);int number;cin >> number;cout << "input the number" << number << endl;}else {cin.putback(ch);char buf[256] = { 0 };cin >> buf; //将buf存入输入流中cout << "input the string"<<buf << endl;}
}//标准输出流
//endl 有两个作用:1.换行 2.刷新缓存区
//不加endl大多数情况下,也能正常输出,
//是因为在系统较为空闲时候,会查看缓存区的内容,如果发现新的内容,便进行输出。
void test05() {cout << "hello world"<<endl;cout.flush();cout.put('h').put('e').put('l') << endl;cout.write("zhaosi",strlen("zhaosi"));
}//格式化输出
void test06() {int number = 10;cout << "十进制" << endl;cout << number << endl;//1、成员方法的方式cout.unsetf(ios::dec);  //卸载当前默认的10进制输出方式cout.setf(ios::oct);  //八进制输出cout.setf(ios::showbase);cout << "八进制" << endl;cout << number << endl;cout.unsetf(ios::oct);cout.setf(ios::hex);cout << "十六进制" << endl;cout << number << endl;cout << "输出控制宽度" << endl;cout.width(10);cout.fill('*');cout.setf(ios::left); //左右对齐cout << number << endl;//2、通过控制符int number2 = 10;cout << hex << setiosflags(ios::showbase)<< setw(10)  //宽度<< setfill('~')<<setiosflags(ios::right)<< number2 << endl;
}
int main(){test06();return 0;
}

#include<iostream>
using namespace std;
#include<fstream>  //文件读写
//文本文件读写
void test01() {//ifstream ism;//ism.open("source.txt", ios::in);ifstream ism("source.txt",ios::in); //只读方式打开文件,文件流(管道)//ofstream osm("target.txt", ios::out); //清除后复制ofstream osm("target.txt", ios::out | ios::app);  //以追加的方式复制if (!ism) {  //!肯定重载cout << "open file fail" << endl;return;}//读文件char ch;while (ism.get(ch)) {cout << ch;osm.put(ch);  //往流里增加数据}//关闭文件ism.close();osm.close();
}//二进制文件操作 对象序列化
class Person {
public:Person(){}Person(int age,int id):age(age),id(id){}void show() {cout << "Age:" << age << "id:" << id << endl;}
public:int age;int id;
};void test02() {//文本模式读的是文本文件吗?      都是二进制方式存储windows:\r\n-->\n linux:\n-->\n//二进制模式读的是二进制模式吗?  是Person p1(10, 20), p2(30, 40);  //p1和p2是以二进制的方式存在程序中//把p1 和 p2写进文件中ofstream osm("target对象.txt",ios::out | ios::binary);  osm.write((char*)&p1, sizeof(Person));   //二进制方式写文件osm.write((char*)&p2, sizeof(Person));osm.close();ifstream ism("target对象.txt", ios::in | ios::binary);Person p3,p4;ism.read((char*)&p3, sizeof(Person));ism.read((char*)&p4, sizeof(Person));p3.show();p4.show();ism.close();
}int main()
{test02();return 0;
}

STL6-输入输出流相关推荐

  1. python输入输出流详解_输入输出流的概念

    Java中的文件复制相较Python而言,涉及到输入输出流的概念,实现中会调用很多对象,复杂很多,在此以文件复制进行简单总结. 这里是一个简单的处理代码: import java.io.*; publ ...

  2. C++ 输入输出流 文本文件 二进制文件读写

    文本文件/ASCII文件(能直接显示内容,费存储空间):文件中每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件或称字符文件. 二进制文件(不能显示内容,节 ...

  3. c++一日一练:让标准的输入输出流关联一个缓冲区

    上篇文章讲述了如何创建自己的标准输入输出,但是如何将标准的输入输出流进行重定向呢: 下面是一个具体的方法: fp = _fdopen( hConHandle, "w" );    ...

  4. Java IO (二),常见的输入/输出流

    字节流和字符流 InputStream和Reader InputStream和Reader两个抽象类是所有输入流的基类,本身并不能创建实例来执行输入,但它们将成为所有输入流的模板.他们的方法是所有输入 ...

  5. java输出流输入流的使用_Java中的IO流之文件输入输出流

    Java中的IO流之文件输入输出流 1.文件流介绍 文件流是以字节为单位进行读写文件的,所以属于字节流,并且是低级流.文件流位于java.io包下. 输入输出流分别是FileInputSteam和Fi ...

  6. java输出流缓冲区内容清除,Java输入输出流与缓冲区的使用

    Java输入输出流与缓冲区的使用,有需要的朋友可以参考下. 一,Input/Output流: 将外设中的数据读取到内存中就是输入. 将内存中的数据写入到外设中就是出. I/O流就是用来处理设备间的 . ...

  7. java实验 输入输出流_java实验七 输入输出流

    有关java的实验和程序 实验七 输入输出流 一.实验目的和要求 目的: 1.掌握使用输入输出流进行文件的读写操作. 要求: 1.实验报告给出内容1,2的填充代码以及内容3的全部源代码. 二.实验内容 ...

  8. java实验七输入输出流_实验六_Java的输入输出流

    JAVA的输入输出流 实验六 Java的输入输出流 实验目的 1. 理解I/O流的概念,掌握其分类 2. 掌握文本文件读写.二进制文件读写 实验环境 JDK1.4以上版本, Eclipse集成开发环境 ...

  9. 【java开发系列】—— java输入输出流

    前言 任何语言输入输出流都是很重要的部分,比如从一个文件读入内容,进行分析,或者输出到另一个文件等等,都需要文件流的操作.这里简单介绍下reader,wirter,inputstream,output ...

  10. Java输入输出流IO

    1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列.Java的I/O流提供了读 ...

最新文章

  1. 【“探探”为例】手把手教你用最少的代码实现各种“机器人”
  2. 叮!您有一份来自平安人寿的真AI情书
  3. 远程过程调用(Remote Procedure Call,RPC)
  4. si4438-IAR不能接收和发送的问题
  5. Head First设计模式读书笔记——策略模式
  6. 领域驱动设计,让程序员心中有码
  7. j计算机一级考试题,2017全国计算机一级考试试题与答案
  8. AMD完成对赛灵思的收购
  9. html css 圆形按钮 仿uc,10款基于jquery的web前端动画特效
  10. 获取context path或者basePath
  11. openstack使用openvswitch实现vxlan组网
  12. matlab 安装教程 2018b
  13. 可视化工具软件排行榜
  14. Maya2018安装报错:visual c++ 2010 sp1 错误代码1612
  15. 程序读取斗罗大陆热点词汇热度
  16. [css] 你有使用过vmax和vmin吗?说说你对它们的理解
  17. 基于FPGA数字时钟的设计(附源码)
  18. 利用OpenCV从图片中提取矩形并标注坐标(室内平面地图)——(一)
  19. 关于手机输入法的一些点子
  20. git-常见问题解决方法(全)

热门文章

  1. Java基础篇1——变量与数据类型
  2. 用dl元素编辑html个人信息,html dl dt dd标签元素语法结构与使用
  3. iperf测试带宽linux,iperf3-网络带宽性能测试工具
  4. c语言的表达式2 4 6 8的值,C语言程序设计测试题二
  5. Java并发编程实战————并发技巧小结
  6. MongoDB学习手记
  7. centos6配置mysql远程访问_MariaDB 数据库配置 Navicat 程序远程访问权限
  8. python threading-单线程 多线程 主线程 子线程 setDeamon join
  9. 一级计算机考试修改信息书面申请表,医院信息科修改数据库申请单.doc
  10. HTML+CSS+JS实现 ❤️响应式图文卡片滑块展示特效❤️