01 C++ 程序设计基础

头文件

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

© 版权声明
THE END
支持一下吧
点赞9 分享
评论 抢沙发
头像
请文明发言!
提交
头像

昵称

取消
昵称表情代码快捷回复

    暂无评论内容