或许我现在只会
using namespace std;
cin>>s;
cout<<s;
冲!
stream类
- ios 基类
- ostream cout =》无参构造函数和复制构造函数私有 对象只有cout
- istream cin
- ifstream 从文件读取数据(input)
- ofstream 向文件写入数据
- iostream
- fstream
标准数据流对象
类别 | 作用 |
---|---|
cin | 标准输入流,从键盘读取数据,重定向为从文件读取数据 |
cout | 标准输出流,向屏幕输出数据,重定向为向文件写入数据 |
cerr | 标准错误输出流,向屏幕输出错误信息 |
clog | 标准错误输出流,向屏幕输出错误信息 |
-
cerr和clog区别:clog放到缓冲区
-
重定向:
cin>>x>>y; freopen("test.txt","w",stdout); cout<<x*y;//结果不会显示在终端,而是在文件中
freopen()三个参数的含义:文件名,模式(读/写),标准输入/输出
使用流操纵算子控制输出格式
头文件 iomanip :格式控制符
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int n = 141;
cout << "1." << hex << n << " " << dec << n << " " << oct << n << " " << endl;
double x = 1234567.89, y = 12.34567;
//有效数字超过n,自动变为科学计数法
cout << "2." << setprecision(5) << x << " " << y << " " << endl;
//fixed 普通小数
cout << "3."<<fixed<< setprecision(5) << x << " " << y << " " << endl;
//scientific科学计数法
cout << "4."<<scientific<< setprecision(5) << x << " " << y << " " << endl;
//setw设置宽度 setfill宽度未满用括号里的字符替换 showpos显示数字的正负
cout << "5." << showpos << fixed << setw(12) << setfill('*') << 12.1 << endl;
}
- setw(宽度) 一次性
cout成员函数
- cout.precision(n) 同setprecision(n)
- cout.width(w) 同width
- cout.self 标志(永久规定输出格式)
- cout.unself 清除标志
cin高级用法
判断输入结束
windows Cirl-Z
linux Cirl-D
cin>>n 返回值为bool型
istream 类成员函数
1、int get():获取输入流中读入的一个字符,返回其ascii码值
从文件中读取字符并在屏幕上显示
freopen("text.txt","r",stdin);
while((c=cin.get())!=EOF){
cout.put(c);
}
2、getline
cin.getline(char *buf,int bufsize); 读到缓冲区满或‘\0’为止
cin.getline(char *buf,int bufsize,char delim); 读到delim为止
获取一行字符串
getline(cin,str);
3、eof 判断输入流是否结束(文件是否末尾)
4、ignore
cin.ignore(int n=1,char delim=EOF)
跳过输入流中的n个字符,或跳过delim及其之前的所有字符,哪个条件先满足就先执行哪个。
5、peek
int peek();
返回输入流的下一个字符,打个照面,不是取走 。
参考:《新标准c++程序设计》