头文件
iostream
cin/cout
输入输出流对象
<<
流插入操作符, >>
流提取操作符
iomanip
流操作符 | 功能 |
---|---|
stew(n) |
设置字符宽度(仅对一项有效),可用于cin |
setprecision(n) |
设置浮点数精度(对多项有效) |
fixed |
固定小数点(对多项有效) |
hex oct dec |
十六进制、八进制、十进制 |
scientific |
科学计数法 |
showpoint |
显示小数点和小数位 |
setfill(c) |
用字符c 填充空位 |
right left |
右对齐(默认)、左对齐 |
showpos |
显示正数+ 号 |
样例:
cout<<setw(10)<<setfill('*')<<right<<42<<endl;
cout<<stew(10)<<setfill('*')<<left<42<<endl;
cout<<fixed<<setprecision(3)<<3.1415926<<endl;
cout<<showpos<<10<<' '<<-10<<endl;
********42
42********
3.142
+10 -10
格式化输入输出
cout
成员函数:
成员函数 | 功能 |
---|---|
cout.precision(n) |
设置小数位数(影响全局) |
cout.fill(c) |
填充字符c (影响全局) |
cout.setf(flag) unsetf(flag) |
设置标志格式位(影响全局),如ios::fixed |
cout.width(n) |
设置输出宽度(仅影响下一次) |
cin
成员函数
成员函数 | 作用 |
---|---|
cin.get(char&) |
读取一个字符 |
cin.getline(char*,int) |
读取一行字符串(读取整行,丢弃换行符) |
cin.ignore(int,char) |
忽略输入流中的n 个字符,或直到char 出现(一并丢弃) |
char name[20];
cin>>name; // 可能数组溢出!
// 正确做法
char word[10] ;
cin >> setw ( 10 ) >> word ;
cin.width(10);
cin >> word ;
cin.ignore(n,ch);
表示跳过后面 \(n\) 个字符或遇到字符 \(ch\) ,常用 cin.ignore()
跳过下一个字符
默认参数
默认参数也称缺省参数,在函数调用中省略了函数实参,将把参数的缺省值赋给函数形参
缺省形参值必须从右向左顺序声明,因为调用时实参取代形参是从左向右的顺序,避免调用时产生歧义
void showArea(float length,float width=10.0);
void showArea(float length,float width)
{
float area = length * width ;
cout << "The area is" << area << endl ;
}
showArea( ) ;
showArea(12.0) ;
showArea(12.0, 5.5) ;
引用
引用是一个已存在对象的别名,可以像指针一样间接操作变量
声明: type &ref = object;
函数重载
程序中定义多个函数,函数的名字相同,但参数的类型或个数不完全相同
概念:编译器根据函数调用时的参数类型和数量,选择合适的函数进行调用
条件:参数个数不同、参数类型不同、参数类型不同时顺序不同
int square(int number)
{return number*number;}
double square(double number)
{return number*number;}
// 不能采用函数返回值类型来区别重载
int square(int);
double square(int); // wrong
内联函数
将函数前加上inline
关键字,只是建议编译器,编译器可忽略它
在内联函数内不允许用循环语句、switch
语句和嵌套的if
等
inline bool isDigit(char ch)
{ return ch>='0' && ch<='9' ? true : false; }
int main ( )
{
char ch;
while(cin.get(ch))
if(isDigit(ch)) cout<<ch<<" is a Digit.\n";
else cout<<ch<<" is not a Digit.\n";
return 0;
}
内存的动态分配和释放
new
操作符:在堆上动态分配内存并返回指向该内存的指针
delete
操作符:释放由 new
分配的单个对象或数组的内存
// C 风格
int* p = (int*)malloc(4);
*p=1;
free(p);
int *p1,*p2,*p3;
p1=new int;
p2=new int(100); // 初始值为 100
p3=new int[100]; // 数组
*p1=25;
cout<<*p1;
delete p2;
delete [] p3;
若函数参数是指针,申请动态内存无效
void getMemory(char *p,int num)
{p=new char[num];}
来源链接:https://www.cnblogs.com/violet1359/p/18810258
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END
暂无评论内容