C++ IO基础
2016-01-22 11:09
288 查看
一:c++I/O处理,按照数据输入输出的过程,形象的将其看做流。数据在流中进行传播。
所有的流有两个基类:
2:cin.get() : 读取单个字符,返回ASCII码 。
3:cin.get(char &):读取单个字符,返回一个istream对象的引用。
4:cin.getline():读取一行,直到遇到
5:cin.read(buf,len):len是读取的长度,包括空白字符也会被读
2:cout.put() :输出单个字符,返回引用。
3:cout.write(buf,len):返回一个ostream的引用
二:在
endl:输出时插入换行符并且刷新流。
endls:输出时在字符插入NULL作为尾符。
flush:刷新缓冲区
ws:输出时略去空白符
dec:令io数据按十进制格式输出
hex:令io数据按十六进制格式
oct:令io数据按照八进制格式
所有的流有两个基类:
ios和
streambuf类
streambuf:提供对缓冲区的基本操作,设置缓冲区等
ios:记录流的状态,支持对
streambuf的输入/输出的格式化/非格式化操作。
istream和
ostream的操作:
istream
1:>> : 返回的是引用,所以可以连续使用。int a,b,c; cin >> a >> b >> c;
2:cin.get() : 读取单个字符,返回ASCII码 。
char ch; ch = cin.get();
3:cin.get(char &):读取单个字符,返回一个istream对象的引用。
char ch1,ch2; cin.get(ch1).get(ch2); cout << ch1 << " " << ch2 << endl;
4:cin.getline():读取一行,直到遇到
\0,与
>>的不同点在于
>>遇到空格,制表符等就会结束。下面的两个getline是不一样的。
char string[256]; std::cin.getline(string,sizeof(string)); std::string name; std::getline(std::cin,name);
5:cin.read(buf,len):len是读取的长度,包括空白字符也会被读
char buf[10]; std::cin.read(buf,5); //只会读取五个字符
ostream
1:<<:返回一个ostream对象的引用,所以可以连续使用。int n1 = 100; int n2 = 200; cout << n1 << " " << n2 << endl;
2:cout.put() :输出单个字符,返回引用。
cout.put('A'); cout.put('B').put('C'); cout << 'A' << 'B' << 'C';
3:cout.write(buf,len):返回一个ostream的引用
char buf[] = "abcde"; cout.write(buf,5);
istringstream
来自于istream,提供读写string的功能。它能以空格将一个字符串分开。#include<iostream> #include<sstream> using std::cout; using std::cin; using std::endl; int main(int argc,char *argv[]) { std::string line; std::string word; while(std::getline(cin,line)) { std::istringstream iss(line); while(iss >> word) { cout << word << "#"; } cout << endl; } return 0; }
ostringstream
和istringstream相似,下面是将double转换成string类型:#include<iostream> #include<sstream> using std::cout; using std::cin; using std::endl; std::string doubletostr(double val) { std::ostringstream oss; oss << val; return oss.str(); } int main(int argc,char *argv[]) { double val = 55.55; std::string str = doubletostr(val); cout << str << endl; return 0; }
二:在
<iostream>中定义了和cin以及cout作用类似的运算符有:
endl:输出时插入换行符并且刷新流。
endls:输出时在字符插入NULL作为尾符。
flush:刷新缓冲区
ws:输出时略去空白符
dec:令io数据按十进制格式输出
hex:令io数据按十六进制格式
oct:令io数据按照八进制格式
#include<iostream> using std::cout; using std::cin; using std::endl; int main(int argc,char *argv[]) { int a; cin >> a; cout << std::hex << a << endl; return 0; }
相关文章推荐
- C++ static专区
- C语言域名解析的简单实现
- C语言域名解析的简单实现
- C语言域名解析的简单实现
- c语言之c预处理程序
- c语言学习之函数篇
- 字符串匹配
- C++:标准库类型(string、vector、bitset)
- C++静态数据成员存在的意义
- C++ template —— 模板中的名称(三)
- C++中Delete时堆错误(Heap Corruption)的原因
- C++学习 【4.1】 利用函数实现指定的功能---函数,函数的形式,函数参数
- VC++ 引用
- C语言指针5分钟教程
- C++使用STL::vector删除数组内的重复元素
- C++ namespace的用法
- c++11新特性
- C++之路进阶——AC自动机(文本生成器)
- CTCI系列--1.3 判断两个字符串是否互为变换(C语言)
- C++之联合是什么?