【c++】输入输出流

或许我现在只会

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++程序设计》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值