网站首页

人工智能P2P分享Wind搜索发布信息网站地图标签大全

当前位置:诺佳网 > 软件工程 > 后端开发 > C++ >

01 C++ 程序设计基础

时间:2025-04-25 18:36

人气:

作者:admin

标签:

导读:头文件 iostream ​cin/cout 输入输出流对象 ​lt;lt; 流插入操作符, gt;gt; 流提取操作符 iomanip 流操作符 功能 stew(n) 设置字符宽度(仅对一项有效),可用于cin setprecision(n) 设置浮点数精度(...

头文件

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];} 
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信