1.ostream & operator<<(int);

重载了<<符号,用于对int类型的输出。为什么要返回ostream的引用呢?

例如:

cout<< "1122"  << "2345" <<endl;

那么当输出“1122"的时候,返回了cout,也就是:  cout<<"1122"返回为 cout,然后可以继续像cout<<"2345"<<endl;这样输出。

2.对数组和指针的输出

ostream可以对下面的指针类型进行输出:

const signed char *

const unsigned char *

const char *

void *     //打印地址的数值表示

eg:

char a[]="sdwadwada"    //int类型是不能这么打印的 智能对char数组

cout<<a<<endl;  //  显示:sdwadwada

char* a="sdwadwada"   

cout<<a<<endl; //sdwadwada

cout<<&a<<endl;//打印的是地址

cout<<(void *)a<<endl;  //打印的是地址

3.

std::cout.put(66.5); //B

std::cout.put(65); //A

return 0;

4.强制转换

long val=560031841;

cout.write((char*) & val, sizeof(long)); //讲显示4个字符形式的数据

过程是:先取数字的地址强制转换为char*类型

5.cin输入

检查输入: 它们跳过空白(空格、换行符和制表符)直到遇到非空白字符开始。

读取范围: 它们读取从非空白字符开始到与目标类型不匹配的第一个字符之间的全部内容。

char a[20];

int b;

char c;

cin>> a  >> b >> c;

输入: yuandedong 123 h

a:  yuandedong

b: 123

c:  h

读完yuandedong后 就返回cin 相当于cin>>b>>c; 因此不可能将h读到a中。

6.cin输入的注意事项

看下例:

结果如下图:

,不能继续输入New num。

原因: 当读取到文件尾部的时候,也就是最开始输入完了后, 流状态将eofbit设置为1,只有当eofbit、badbit、failbit都为0的时候一切才是顺利的。才可以继续读下去。因此我们可以接下来使用cin.clear()对stream状态进行重置。

如下:

7.get  cin 的用法

get(char &) 和get(void ) 方法提供了不跳过空白的单字符输入功能。

get(char *, int , char)和getline(char *, int , char)在默认情况下读取整行而不是一个单词。

它们都不会跳过空白,也不会进行数据转换。

cin跳过空白(空格、换行符和制表符)直到遇到非空白字符开始。

版本2:

void main()

{

char ch;

while(cin.get(ch))

{

  cout<<ch<<" ";

}

}

版本3:

char ch;

ch=cin.get();

while(ch!='\n')

{

cout<<ch<<" "

ch=cin.get();

}

到达文件尾后,cin.get(void)都将返回值EOF,因此可以这样来读取输入:

将ch类型申明为int而不是char,因为值EOF可能无法使用char类型来表示。

由以上实验结果可以得出:

1.cin确实跳过了空白格,结束符也给跳过了进入了无限循环。

8. 文件输入输出

8.1 头文件: fstream

包含该文件便自动包含iostream文件,因此不必显示包含iostream头文件。

ostream是ofstream的基类,istream同样,因此可以使用所有的ostream的方法,包括插入操作符定义、格式化方法和控制符等等。

eg:

ifstream fin(".....txt");

char ch;

while(fin.get(ch))   //和cin的方法是一样的。

{

....

}

if(!fin.is_open())

{

...

}

8.2 打开多个文件

  cin.clear()也可以不要,视情况而定。

命令行处理:

C++ 输入输出流 总结的更多相关文章

  1. java.IO输入输出流:过滤流:buffer流和data流

    java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...

  2. Java中IO流,输入输出流概述与总结

    总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ...

  3. 第27章 java I/O输入输出流

    java I/O输入输出流 1.编码问题 import java.io.UnsupportedEncodingException; /** * java涉及的编码 */ public class En ...

  4. java 对象输入输出流

    对象的输入输出流的作用: 用于写入对象 的信息读取对象的信息. 对象的持久化. 比如:用户信息.              ObjectInputStream   : 对象输入流            ...

  5. 【转】输入/输出流 - 全面掌握IO

    File类: 程序中操作文件和目录都可以使用File类来完成即不管是文件还是目录都是使用File类来操作的,File能新建,删除,重命名文件和目录,但File不能访问文件内容本身,如果需要访问文件本身 ...

  6. 输入输出流(IO)

    输入输出流(IO)文件(File)java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录.File类只用于表示文件(目录)的信息(名称.大小等), ...

  7. Java输入/输出流体系

    在用java的io流读写文件时,总是被它的各种流能得很混乱,有40多个类,理清啦,过一段时间又混乱啦,决定整理一下!以防再忘 Java输入/输出流体系 1.字节流和字符流 字节流:按字节读取.字符流: ...

  8. JAVA Io 缓冲输入输出流

    java中提供带缓冲的输入输出流.在打开文件进行写入或读取操作时,都会加上缓冲,提高了IO读写性能. 1. BufferedInputStream 缓冲输入流 2. BufferedOutputStr ...

  9. C++输入输出流

    一.C++输入输出流的含义 以前所用到的输入和输出,都是以终端为对象的,即从键盘输入数据,运行结果输出到显示器屏幕上.从操作系统的角度看,每一个与主机相连的输入输出设备都被看作一个文件.程序的输入指的 ...

  10. Java 输入输出流 转载

    转载自:http://blog.csdn.net/hguisu/article/details/7418161 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所 ...

随机推荐

  1. 你不需要jQuery(四)

    jQuery是个好东西.它诞生于IE6在互联网称霸的那个时代.jQuery的存在让我们的代码能很好的兼容各种平台. 然而,到如今,浏览器技术已经取得了巨大的进步.我们可以自由的使用所有最新众多ES5/ ...

  2. JNDI:对java:comp/env的研究

    这两天研究了一下 context.lookup("java:comp/env/XXX")和直接context.lookup("XXX")的区别 网上关于这两个的 ...

  3. nginx如何解决超长请求串

    nginx是一个强大的http服务器,但是在使用过程中发现,当遇到超长的post请求或者get请求时,nginx会返回413.400.414等状态码,这是因为请求串长度超过了nginx默认的缓存大小或 ...

  4. 李洪强iOS开发本人集成环信的经验总结_07_监听好友请求

    李洪强iOS开发本人集成环信的经验总结_07_监听好友请求 来到Appdalegate中: 遵守代理协议 设置代理  实现监听好友请求的回调的方法

  5. Vue.js vui 饿了么Vue2.0的组件库

    http://www.oschina.net/news/78038/vue-js-2-0-3 http://git.oschina.net/durcframework/vui http://eleme ...

  6. Android工具:延展图片NinePatch

    NinePatch能够对.png图片进行处理,生成一个.9.png格式的图片,图像拉伸操作时,图片就会有失真,而.9.png是Android里所支持的一种特殊的图片格式,可以实现部分拉伸. 制作图片方 ...

  7. Razor视图引擎的基本概念与法语

    Razor 视图引擎的特点: 简洁.富于表现.流畅 尽量减少页面代码的输入,实现快速流畅的编程工作 不必明确为服务器代码标记起始与结束符,Razor 能智能判断,这样让页面看清洁,代码方便阅读 asp ...

  8. Android EditText控件行尾为表情时的BUG

    今天处理项目上的一个诡异BUG,贴吧Android客户端发贴框是支持表情文字混排的,但是当发贴框的行内容末尾为表情时,尝试在表情后插入文字,就悲剧了:文字其实写进去了,但是不会显示出来.研究了一下,发 ...

  9. 如何理解IoC/DI

    IoC:Inversion of Control,控制反转DI:Dependency Injection,依赖注入 要理解上面两个概念,就必须搞清楚如下的问题: 参与者都有谁?依赖:谁依赖于谁?为什么 ...

  10. matlab 中保存某几个变量

    save  AOA.mat dingjiao RMSE%保存变量dingjiao,RMSE于AOA.mat clear all;%当删除所有数据之后 load AOA.mat%还可以读出这两个变量的数 ...