一:格式化字符串,常用规则的如下:
我觉得C风格的输入输出比C++中的好用的多。格式化字符串比一堆堆“<<”连接的变量名更为直观,也更方便
%[flags][width][.perc][F|N|h|l]type
type: %d %s %u %x %X %f %p等 这个最为常用,大家都熟悉~
flags:
无: 右对齐,
- : 左对齐,注意左对齐是不能补0的(有歧义)
0:在前面补0,需要跟width一起用
width:数字,所占宽度,不够的地方没有flag用空格补,flag=0用0补
.prec:小数点都占几位
F|N|h|l :就l经常用, 长XX,如%ld就是长整形
二 printf/ scanf系列
1,fprintf经常与stdout,stderr一起用来打log
2,所有的io函数都是不处理内存的
3,通过sscanf 来进行类型转换是个不错的方法,例如将string转成float:
sscanf(s.c_str(),"%f",&f)
三 文件读写
读文件: ifstream + getline
写文件:ofstream
1,scanf 和 cin的问题在于不能很好地处理空白字符,因此实际用的并不多,常用的是getline函数:
2,打开文件时一定要检查是否成功
3,stream对象都是不能复制或赋值的
4,将文件绑定到stream可以用open函数,也可以通过构造函数参来实现
5,可以用一个fstream+文件模式来知道打开文件的方式,但更形象方便的做法是直接指定ifstream(默认ios::in)或ofstream(默认ios::out)