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()也可以不要,视情况而定。
命令行处理:
最新文章
- git设置hooks 钩子
- 产品Backlog
- GDB代码调试与使用
- linux中文显示乱码的解决办法
- hadoop 1.2.1 eclipse 插件编译
- linux安装svn服务器(yum方式)
- iOS9适配中出现的一些常见问题
- [Head First Python]4.读取文件datafile.txt, 去除两边空格, 存储到列表,从列表格式化(nester.py)后输出到文件man.out,other.out
- iOS-模糊查询
- mysql主从数据库设置备忘
- oracle查看执行最慢与查询次数最多的sql语句及其执行速度很慢的问题分析
- [PA2014]Muzeum
- lucene的suggest(搜索提示功能的实现)
- 2.13 C++拷贝构造函数
- 键&#39;attachdbfilename&#39;的值无效。
- 启明星请假系统appform:流程在线帮助
- json&;pickle
- 深度学习与计算机视觉(11)_基于deep learning的快速图像检索系统
- spfa+差分约束系统(D - POJ - 1201 && E - POJ - 1364&&G - POJ - 1)+建边的注意事项+超级源点的建立
- koa/koa2项目搭建
热门文章
- CQRS学习——Dpfb以及其他[引]
- MVC4中Ajax.BeginForm OnSuccess 不执行以及控制器返回JsonResult 提示下载的原因
- jasper ireport create a report with parameters without sql query
- pthread_create()之前的属性设置
- What is the innovator&rsquo;s solution&mdash;&mdash;什么才是创新的解决方案1
- JavaScript基本程序结构
- UPDATE和SELECT嵌套使用
- movzbl和movsbl
- 安装安装.net framework过程中出现的问题
- Android开发之IP拨号器原理