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)//此处传入了结构体变量的地址,因此结构体要先有定义
{
   
    函数内容
}
目录
相关文章
|
26天前
|
程序员 C++ 容器
在 C++中,realloc 函数返回 NULL 时,需要手动释放原来的内存吗?
在 C++ 中,当 realloc 函数返回 NULL 时,表示内存重新分配失败,但原内存块仍然有效,因此需要手动释放原来的内存,以避免内存泄漏。
|
1月前
|
存储 前端开发 C++
C++ 多线程之带返回值的线程处理函数
这篇文章介绍了在C++中使用`async`函数、`packaged_task`和`promise`三种方法来创建带返回值的线程处理函数。
45 6
|
1月前
|
C++
C++ 多线程之线程管理函数
这篇文章介绍了C++中多线程编程的几个关键函数,包括获取线程ID的`get_id()`,延时函数`sleep_for()`,线程让步函数`yield()`,以及阻塞线程直到指定时间的`sleep_until()`。
23 0
C++ 多线程之线程管理函数
|
1月前
|
编译器 C语言 C++
C++入门3——类与对象2-2(类的6个默认成员函数)
C++入门3——类与对象2-2(类的6个默认成员函数)
23 3
|
1月前
|
编译器 C语言 C++
详解C/C++动态内存函数(malloc、free、calloc、realloc)
详解C/C++动态内存函数(malloc、free、calloc、realloc)
154 1
|
1月前
|
存储 编译器 C++
C++入门3——类与对象2-1(类的6个默认成员函数)
C++入门3——类与对象2-1(类的6个默认成员函数)
30 1
|
1月前
|
编译器 C语言 C++
C++入门6——模板(泛型编程、函数模板、类模板)
C++入门6——模板(泛型编程、函数模板、类模板)
41 0
C++入门6——模板(泛型编程、函数模板、类模板)
|
2月前
|
编译器 C++
【C++核心】函数的应用和提高详解
这篇文章详细讲解了C++函数的定义、调用、值传递、常见样式、声明、分文件编写以及函数提高的内容,包括函数默认参数、占位参数、重载等高级用法。
22 3
|
3月前
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
|
3月前
|
存储 C++
c++学习笔记05 函数
C++函数使用的详细学习笔记05,包括函数的基本格式、值传递、函数声明、以及如何在不同文件中组织函数代码的示例和技巧。
34 0
c++学习笔记05 函数