C++ 输入输出流 总结
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++ 输入输出流 总结的更多相关文章
- java.IO输入输出流:过滤流:buffer流和data流
java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...
- Java中IO流,输入输出流概述与总结
总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ...
- 第27章 java I/O输入输出流
java I/O输入输出流 1.编码问题 import java.io.UnsupportedEncodingException; /** * java涉及的编码 */ public class En ...
- java 对象输入输出流
对象的输入输出流的作用: 用于写入对象 的信息读取对象的信息. 对象的持久化. 比如:用户信息. ObjectInputStream : 对象输入流 ...
- 【转】输入/输出流 - 全面掌握IO
File类: 程序中操作文件和目录都可以使用File类来完成即不管是文件还是目录都是使用File类来操作的,File能新建,删除,重命名文件和目录,但File不能访问文件内容本身,如果需要访问文件本身 ...
- 输入输出流(IO)
输入输出流(IO)文件(File)java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录.File类只用于表示文件(目录)的信息(名称.大小等), ...
- Java输入/输出流体系
在用java的io流读写文件时,总是被它的各种流能得很混乱,有40多个类,理清啦,过一段时间又混乱啦,决定整理一下!以防再忘 Java输入/输出流体系 1.字节流和字符流 字节流:按字节读取.字符流: ...
- JAVA Io 缓冲输入输出流
java中提供带缓冲的输入输出流.在打开文件进行写入或读取操作时,都会加上缓冲,提高了IO读写性能. 1. BufferedInputStream 缓冲输入流 2. BufferedOutputStr ...
- C++输入输出流
一.C++输入输出流的含义 以前所用到的输入和输出,都是以终端为对象的,即从键盘输入数据,运行结果输出到显示器屏幕上.从操作系统的角度看,每一个与主机相连的输入输出设备都被看作一个文件.程序的输入指的 ...
- Java 输入输出流 转载
转载自:http://blog.csdn.net/hguisu/article/details/7418161 1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所 ...
随机推荐
- springmvc 数据对象回绑
springmvc中,由页面 post到 controller,对象可以在form里面设置modelAttribute达到回绑的目的. 但是如果对象里面有复杂的非String,int的对象,则要在co ...
- 5.1:FactoryBean的使用
5.1 FactoryBean的使用 一般情况下,Spring通过反射机制利用bean的class属性指定实现类来实例化bean .在某些情况下,实例化bean过程比较复杂,如果按照传统的方式,则需 ...
- 【转链接】Handlebars模板引擎以及浅谈模板引擎的实现原理
什么叫做“模板引擎“?我是这么理解的:就是对一些待填入数据的占位符的解析.如果你使用过Python的django框架,那你肯定是模板一点也不陌生.模板引擎就是解析模板的,把后端数据塞到前端页面模板. ...
- 团体程序设计天梯赛-练习集L1-022. 奇偶分家
L1-022. 奇偶分家 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定N个正整数,请统计奇数和偶数各有多少个? 输入格式 ...
- 团体程序设计天梯赛-练习集L1-003. 个位数统计
L1-003. 个位数统计 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个k位整数N = dk-1*10k-1 + . ...
- js 全选 反选
1.全选 function selectAll(form){ for (var i = 0; i < form.elements.length; i++) { if (form.elements ...
- 利用VS2005进行dump文件调试
前言:利用drwtsn32或NTSD进行程序崩溃处理,都可以生成可用于调试的dmp格式文件.使用VS2005打开生成的DMP文件,能很方便的找出BUG所在位置.本文将讨论以下内容: 1. 程序编译选 ...
- SQLite入门与分析(三)---内核概述(1)
写在前面:从本章开始,我们开始进入SQLite的内核.为了能更好的理解SQLite,我先从总的结构上讨论一下内核,从全局把握SQLite很重要.SQLite的内核实现不是很难,但是也不是很简单.总的来 ...
- C++动态链接库测试实例
前话 上一章节我导出了一个动态链接库 要使用该链接库,我们还需要该链接库对外公开的函数,即头文件 下面开始实例 测试实例 第一步--将动态链接库的dll.lib.和头文件导入项目中 文件目录如下: 项 ...
- SQLite设置主键自动增长及插入语法
SQLite中,一个自增长字段定义为INTEGER PRIMARY KEY AUTOINCREMENT,那么在插入一个新数据时,只需要将这个字段的值指定为NULL,即可由引擎自动设定其值,引擎会设定为 ...