文件与输入输出格式

输入格式

有空格的字符串

cin不能完整输入用空格的字符串,因为在cin遇到空格字符时,认为字符串已经结束了

解决方法 :采用cin.get(arrayname, size)或cin.get(arrayname, size, s),可连空格一起输出,遇到s则直接输出前面的字符

get和getline的区别

get(arrayname, size, s)和getline(arrayname, size, s):

  • getline会删除缓冲区中的s
  • get不会删除缓冲区中的s,在向get输入带有s的字符串时,cout<<arrrayname输出s前面的字符串,用下一个get(s),cout<<s输出缓冲区中的s

get(arrayname, size)和getline(arrayname, size)

  • getline会删除缓冲区中的enter符
  • get不会删除缓冲区中的enter符,可用下一个get(s),cout<<s输出缓冲区中的enter符(ASCII码为10)

获取字符数据的两种调用方式

cin.get(a)和a = cin.get()
当使用while(cin.get(c) != '\n')时,则每次读取一个字符
注意:第二种不标准,通常使用第一种

输出格式

put(char c)和write(const char *c, int n)对比

put用于输出单个字符,write用于指定输出的字符串长度然后截取字符串输出

setw(n)与setfill(char c)配合使用

setw用于在开头/中间设置n个空格,配合setfill(char c)用符号填充剩下的空格

对齐

默认的是右对齐

  • left:左对齐,不够的用setfill(char c)设置的字符填充
  • right:右对齐,不够的用setfill(char c)设置的字符填充

精度和小数有效位数

setprecision(n),n大于该小数的有效位数后,在末尾加0,若没有添加showpoint,无法输出末尾的0
注意:showpoint设置一次后下面接着的cout语句也可以对该格式生效

进制显示

setbase(n)或dec(10),hex(16),oct(8),要在设置showbase后才可以显示进制前缀(设置一次后接下来的cout也对该格式生效)

文件流

  • ofstream输出文件流:创建文件并向文件写入信息
  • ifstream输入文件流:用于从文件读取数据
  • fstream文件流:同时具有读写两种功能

打开文件open

open函数是fstream,ofstream,ifstream对象的方法void open(const char *filename, ios::openmode mode);
mode为打开文件方式,有以下几种

ios::in以读方式打开
ios::out以写方式打开
ios::binary以二进制方式打开

可用|分隔多种打开方式

写入和读取文件

  • 用流插入(<<)向文件写入信息
  • 用流提取(>>)从文件提取信息

读取和写入字符

  • 单个:参考前面的put和get函数
  • 多个:参考前面的write函数,write(const char *c, int n)

定位

seekp(int n)将读写指针定位到第n个字节

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值