c++常见函数及技巧

简介: C++编程中的一些常见函数和技巧,包括生成随机数的方法、制表技巧、获取数字的个位、十位、百位数的方法、字符串命名技巧、避免代码修改错误的技巧、暂停和等待用户信号的技巧、清屏命令、以及避免编译错误和逻辑错误的建议。

函数:生成随机数

C 库函数 int rand(void) 返回一个范围在 0 到 RAND_MAX 之间的伪随机数。

rand()%100+1

生成一个0-99的随机数→+1后→变成了rand整体后+1 生成1~100的随机数

函数:添加随机数种子,根据系统时间生成随机数(需要包含时间头文件)

#include<ctime>
srand((unsigned) time(NULL))

函数:制表

#include <iomanip>
setw(制表长度)

setw() 函数只对紧接着的输出产生作用。
当后面紧跟着的输出字段长度小于 n 的时候,在该字段前面用空格补齐,当输出字段长度大于 n 时,全部整体输出。

技巧:获取一个百位数整型变量的个,十,百位数

假设变量为a

a%10 //个位数 需要取模 与其他的不同
a/10%10 //十位数
a/100 //百位数

假如这个整数更大,如四位数五位数
它的某一位遵循这个规律
最低位(个位):
a%10
中间位置(以百位为例)
a/100%10 /100利用整数除法取整原则,用于去除百位以下的数字,%取模用于去除百位以上的数字,保留尾位(原理同最低位)
最高位(以千位为例)
a/1000 去除千位以下的数字,因为千位为最高位,故没有比千位更大的数需要去除,此处可以%10也可以不%10,效果一样

按照以上得出的规则
可以无脑求某一位 即:

a/位数%10

例如:
a/1%10 个位
a/10%10 十位
a/1000%10 千位

技巧:对一系列同类型字符串进行分别命名

string nameSeed=“ABCDE”;
for(int i=0;i<len;i++)
{
teacherArray[i].name = “Teacher_”;
teacherArray[i].name +=nameSeed[i];
}

技巧:避免后续修改代码执行错误

1.即使只有单句语句要执行,也为其赋予外壳{},避免在之后添加内容时忽略了外壳的添加而找不出错误原因
原程序:

for(int i = 1; i <= 10; i++){
   

    for (int j = 1; j <= 10; j++)
        cout << "* ";
    cout << endl;
}

错误程序:

for (int i = 1; i <= 10; i++) {
   

    for (int j = 1; j <= 10; j++)//内层循环执行到j==5时退出
        if (j == 5)
            break;//此处错误,for循环只会执行第一个语句,后续语句将在循环外依次执行
        cout << "* ";


    cout << endl;
}

修改如下:

for (int i = 1; i <= 10; i++) {
   

    for (int j = 1; j <= 10; j++) {
   
        if (j == 5)
            break;
        cout << "* ";
    }

    cout << endl;
}
技巧:屏幕展示时,暂停并等待用户信号,避免控制台一闪而过
system("pause");//用于屏幕展示时,暂停并等待用户信号,避免控制台一闪而过
技巧:允许多次输入并设置停止输入的跳出情况

while(true)是一个假死循环,当return0时程序终止循环

int a = 0;
while (true)
{
   
    cin >> a;
    if (a == 666)
    {
   
        system("pause");//请按任意键继续
        return 0;
    }
    else
        cout << "go on" << endl;
}
技巧:终端的清屏
system(“cls”);
技巧:避免报错

1.结构体定义放在函数上面,避免函数调用结构体时找不到结构体

struct Person
{
   
    string name;//姓名
    int sex;//性别 
    int age;//年龄
};

void addPerson(struct Person* person)//此处传入了结构体变量的地址,因此结构体要先有定义
{
   
    函数内容
}
目录
相关文章
|
30天前
|
存储 算法 搜索推荐
【C++】类的默认成员函数
【C++】类的默认成员函数
|
15天前
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
12 1
|
22天前
|
存储 C++
c++学习笔记05 函数
C++函数使用的详细学习笔记05,包括函数的基本格式、值传递、函数声明、以及如何在不同文件中组织函数代码的示例和技巧。
26 0
c++学习笔记05 函数
|
2月前
|
C++ 运维
开发与运维函数问题之析构函数在C++类中起什么作用如何解决
开发与运维函数问题之析构函数在C++类中起什么作用如何解决
34 11
|
2月前
|
C++ 运维
开发与运维函数问题之C++类的简单示例如何解决
开发与运维函数问题之C++类的简单示例如何解决
50 10
|
22天前
|
存储 C++
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
29 0
|
2月前
|
存储 C++ 运维
开发与运维函数问题之使用C++标准库中的std::function来简化回调函数的使用如何解决
开发与运维函数问题之使用C++标准库中的std::function来简化回调函数的使用如何解决
37 6
|
2月前
|
编译器 C++ 运维
开发与运维函数问题之函数的返回类型如何解决
开发与运维函数问题之函数的返回类型如何解决
29 6
|
27天前
|
Dart 编译器 API
Dart ffi 使用问题之在C++线程中无法直接调用Dart函数的问题如何解决
Dart ffi 使用问题之在C++线程中无法直接调用Dart函数的问题如何解决
|
2月前
|
C++
C++ string中的函数和常用用法
C++ 中string中的函数和常用用法
24 4