(笔记总结)C/C++语言的常用库函数(持续记录,积累量变)

2024-01-23 13:52

本文主要是介绍(笔记总结)C/C++语言的常用库函数(持续记录,积累量变),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面:
由于时间的不足与学习的碎片化,写博客变得有些奢侈。
但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。
既然如此
不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录,记录笔者认为最通俗、最有帮助的资料,并尽量总结几句话指明本质,以便于日后搜索起来更加容易。


标题的结构如下:“类型”:“知识点”——“简短的解释”
部分内容由于保密协议无法上传。


点击此处进入学习日记的总目录

C/C++语言的常用库函数

  • 一、<stdio.h>——标准输入/输出库
    • 1、scanf()与printf()——输入与输出
    • 2、fgets() ——输入字符串
    • 3、putchar()——输出一个字符
    • 4、getchar()——输入一个字符并将其转化为整型
    • 5、sprintf()——将输出的字符串保存到指定字符串
    • 6、sscanf()——将输入的字符串保存到指定字符串
  • 二、< iostream>——C++标准库
    • 1、cin >>——读取一个变量
    • 2、cin.get()——读取一个字符
    • 3、cin.get()——读取一行 & 指定读取最大位数 & 指定结束符(默认换行)
    • 4、cin.getline——输入一行 且 指定结束符(默认换行)
    • 5、cin.ignore——清空输入缓冲区
  • 三、<string.h>——字符串处理函数库
      • 字符串处理函数:1-4
    • 1、strcpy()——复制字符串
    • 2、strncpy()——复制指定位数字符串
    • 3、strcat()——连接字符串
    • 4、strncat()——复制指定位数字符串
      • 字符串比较函数:5-6
    • 5、strcmp()——比较字符串
    • 6、strncmp()——比较指定位数字符串
      • 字符串查找函数:7-13
    • 7、strchr()——返回 字符c 在字符串s 第一次出现的地址
    • 8、strcspn()——返回 字符串s2 在字符串s1 第一次出现的下标
    • 9、strspn()——返回 字符串s2 在字符串s1 第一个未出现字符的下标
    • 10、strpbrk()——返回 字符串s2 在字符串s1 第一次出现的地址
    • 11、strrchr()——返回 字符c 在字符串s 最后出现的地址
    • 12、strstr()——返回 字符串s2 在字符串s1 第一次出现的地址
    • 13、strtok()——返回 字符c 在字符串s 第一次出现的地址 并将该位置的字符设为'\0'
      • 内存处理函数:14-18
    • 14、memcpy()——将s2的前n位字符 覆盖 s1的前n位字符
    • 15、memmove()——先将s2里的前n位字符复制到 一个临时数组,然后再覆盖s1的前n位字符
    • 16、memcmp()——与strncmp相同,只不过memcmp不止可以处理字符串
    • 17、memchr()——与strchr相同,只不过需要用void*定义的指针去接收地址
    • 18、memset()——将c覆盖s的前n位,返回指向s的void型指针
    • 19、strerror ()——返回指向错误号字符串的指针
    • 20、strlen()——返回字符串结束符前面字符的个数
    • 21、getline()——输入一行字符串,遇到换行符停止,保存时不保存换行符
  • 四、<stdlib.h>——通用工具函数库
    • 1、strtod()——将字符串转为双精度浮点数
    • 2、strtol()——将字符串转为长整型数
    • 3、strtoul()——将字符串转为无符号长整形数
    • 4、exit() 和 atexit()——程序终止与程序反向运行
      • 1. exit()
      • 2. atexit()
  • 五、<ctype.h>——字符处理函数库
    • 1、isblank()——判断是否为空格
    • 2、isdigit()——判断是否为数字
    • 3、isalpha()——判断是否为大写字母 或 小写字母
    • 4、isalnum()——判断大写字母 或 小写字母 或 数字
    • 5、isxdigit()——判断是否为十六进制的数字
    • 6、islower()——判断是否为小写字母
    • 7、isupper()——判断是否为大写字母
    • 8、tolower()——将大写字母 改为 小写
    • 9、toupper()——将小写字母 改为 大写
    • 10、isspace()——判断是否为空白字符 换行符('\n')空格符(' ')换页符('\f')回车符(‘\r’)水平制表符('t')垂直制表符('\v')
    • 11、iscntrl()——判断是否为空白字符 水平制表符('\t')垂直制表符('\v')换页符('\f')报警符(‘\a’)退格符(\b')回车符(‘\r’)换行符('\n')空字符('\0')
    • 12、ispunct()——判断是否为空格 数字 字母以外的 可打印字符
    • 13、isprint()——判断是否为 大写字母 小写字母 数字 标点符号 空格符
    • 14、sgraph()——判断是否为 大写字母 小写字母 数字 标点符号
  • 六、<Windows.h>——windows操作工具
    • 1、FindWindow()——返回的窗口的句柄
    • 2、GetForegroundWindow()——获取当前的活动窗口
    • 3、SetForegroundWindow()——设置当前的活动窗口
    • 4、keybd_event()——模拟按键

一、<stdio.h>——标准输入/输出库

1、scanf()与printf()——输入与输出

  1. scanf()与printf()中格式说明符几乎相同的一部分
格式说明符解释
%d用来输入和输出int
%ld用来输入和输出long int
%lld用来输入和输出long long int
%hd用来输入和输出short
%i用来输入和输出有符号十进制整数
%u用来输入和输出无符号十进制整数
%lu用来输入和输出无符号十进制长整数
%llu用来输入和输出无符号十进制长长整数
%hu用来输入和输出无符号短十进制整数
%o用来输入和输出八进制整数
%lo用来输入和输出长八进制整数
%ho用来输入和输出短八进制整数
%#o用来输出八进制整数,数字前有0
%x用来输入和输出十六制整数,字母小写
%#x用来输出十六制整数,字母小写,数字前有0x
%lx用来输入和输出长十六制整数,字母小写
%X用来输入和输出十六制整数,字母大写
%#X用来输出十六制整数,字母大写 ,数字前有0X
%lX用来输入和输出长十六制整数,字母大写
%c用来输入和输出单个字符
%s用来输入和输出一串字符串
输入时遇空格,制表符或换行符结束
输出时连格式说明符一起输出
printf("%s","%d%f",a,b);输出 %d%f
%f用来输入和输出float,输出double
%lf用来输入和输出double(double输出用%f和%lf都可以)
%Lf用来输入和输出long double
%e用来输入和输出指数,字母小写
%le用来输入和输出长指数,字母小写
%E用来输入和输出指数,字母大写
%lE用来输入和输出长指数,字母大写
%g用来输入和输出指数或float(输出最短的一种),字母小写
%lg用来输入和输出长指数或double(输出最短的一种),字母小写
%G用来输入和输出指数或float(输出最短的一种),字母大写
%lG用来输入和输出长指数或double(输出最短的一种),字母大写
  1. scanf()独有
格式说明符解释
%*(所有类型),如%*d用来输入一个数,字符或字符串而不赋值(跳过无关输入)
如scanf(“%d%*c%d”,&a,&b);
这样就可以只将1+2中的1和2赋值给a和b。
%m(所有类型),其中m为常数限定输入范围,如scanf(“%4d”,&a)时输入123456,只把1234赋值给a
,(逗号)无实际用处,仅用于美观。如scanf(“%d,%d,%d”,&a,&b,&c);
-(横杠) :(冒号)方便日期等输入,但不赋值
scanf(“%d-%d-%d”,&a,&b,&c);需输入2018-11-20
scanf(“%d:%d:%d”:&a,&b,&c);需输入2018:11:20
所有字符串,符号(包括空格)
数字(不与输入数相挨)
任何所写的东西都必须如横杠一般先输入(不赋值),不然系统报错
scanf(“%d 456 %d”,&a,&b);
需输入 1 456 7(1和7之间有 456 (前后各一个空格))
结果为a=1 b=7
  1. printf()独有
格式说明符解释
%m.nd %-m.nd
(m和n为常数)
m用于在d位数小于m时补空格(右对齐)d位数大于m时忽略
如%5d,输出123, 123(123前面两个空格)
.n用于在d位数小于n时补0(右对齐)d位数大于n时忽略
如%.5d,输出123, 00123(123前面两个0)
%-m.nd则为左对齐
%m.nf %m.nlf %m.nLf
%-m.nf %-m.nlf %-m.nLf
m用于在小数位数小于m时补空格(右对齐)
小数位数大于m时忽略 (小数点算一位)
如%6f 需输出3.14 结果为 3.14(3.14前面两个空格)
.n用于控制小数位数 小数部分长度大于n则四舍五入
小数部分长度小于于n则补0
如%.6f 需输出3.14 结果为3.140000
如%6f 需输出3.1415926 结果为3.141593
%-m.nf %-m.nlf %-m.nLf 则为左对齐
%m.ns %-m.nsm用于在字符串位数小于m时补空格(右对齐)字符串位数大于m时忽略
如%5s,输出abc, abc(abc前面两个空格)
.n用于控制字符串位数 长度大于n则仅输出前n位
字符串长度小于于n时忽略
如%.6s 需输出abcdefg 结果为abcdef
如%6f 需输出abc 结果为abc
%-m.ns则为左对齐
%mc %-mcm限制char的输出长度 当m>1时,在左方补m-1个空格
%-mc则为左对齐
%m.ne %-m.ne
%m.nE %-m.nE
m用于控制指数长度,在QT中,指数部分占五位(如 e+001 )
位数小于m时左方补空格 位数大于m时忽略
如printf(“%15.5e”,a); 设a为123.456789
结果为 1.23457e+002(三个空格)
.n用于控制小数长度 小数部分长度大于n则四舍五入
小数部分长度小于于n则补0
如printf(“%15.5e”,a); 设a为123.456789
结果为 1.23457e+002(三个空格)%-m.ne %-m.nE则为左对齐
%*(整型)如%d
%-
(整型)
在输出项中规定整型数据的宽度,少于限制补空格,大于忽略
如printf(“%d”,a,b);
a=5 b=123
结果为 123(前面有两个空格)
%-
(整型) 左对齐
%0*(整型)在输出项中规定整型数据的宽度,少于限制补0,大于忽略
如printf(“%0*d”,a,b);
a=5 b=123
结果为 00123
注意printf()中的运算是从右至左,而输出是从做左至右
如a=1,printf(“%d %d %d”,a++,a++,a++);
结果为3 2 1

2、fgets() ——输入字符串

函数解释
char *fgets(char *s, int n,PILE *stream);将输入的字符串存在s中,只保存n-1位,stream是输入流,一般用stdin
注意n一定不大于数组。
输入如果遇见换行符或文件结束符会提前停止输入,但换行符也会被保存
读入结束后,一个空字符(‘\0’)被保存在数组的结尾

char a[10];
fgets(a,10,stdin);
printf("%s",a);
输入 A+B=C=de=f/e
输出 A+B=C=d
e

3、putchar()——输出一个字符

函数解释
int putchar(int c);输出一个字符

4、getchar()——输入一个字符并将其转化为整型

函数解释
int getchar(void);输入一个字符并将其转化为整型

5、sprintf()——将输出的字符串保存到指定字符串

函数解释
int sprintf(char *s,“内容%d”,int c);除了是将输出的字符串保存到字符串*s以外 与printf()没什么区别
%d可以为其他格式说明符

6、sscanf()——将输入的字符串保存到指定字符串

函数解释
int sscanf(char *s,“内容%d”,int c);除了内容是从字符串*s输入的以外 其他和scanf没什么区别

参考资料:
(超全,超经典)scanf()函数与printf()中的格式说明符
(超全,超经典)字符串函数与易错点

二、< iostream>——C++标准库

1、cin >>——读取一个变量

cin是C++编程语言中的标准输入流对象,即istream类的对象。cin主要用于从标准输入读取数据,这里的标准输入,指的是终端的键盘。

在理解cin功能时,不得不提标准输入缓冲区。当我们从键盘输入字符串的时候需要敲一下回车键才能够将这个字符串送入到缓冲区中,那么敲入的这个回车键(\r)会被转换为一个换行符\n,这个换行符\n也会被存储在cin的缓冲区中并且被当成一个字符来计算!比如我们在键盘上敲下了123456这个字符串,然后敲一下回车键(\r)将这个字符串送入了缓冲区中,那么此时缓冲区中的字节个数是7 ,而不是6。

cin读取数据也是从缓冲区中获取数据,缓冲区为空时,cin的成员函数会阻塞等待数据的到来,一旦缓冲区中有数据,就触发cin的成员函数去读取数据。

	#include <iostream>using namespace std;int main(){char a;int b;float c;cin>> a >> b >> c;cout << a << " " << b << " " << c << " " << endl;system("pause");return 0;}

程序输入:d 56 67.777[回车]
在这里插入图片描述
使用cin读取键盘输入时,难免发生错误,一旦出错,cin将设置条件状态(condition state)。

条件状态标识符号含义
goodbit无错误
eofbit已到达文件尾
failbit非致命的输入/输出错误,可挽回
badbit致命的输入/输出错误,无法挽回

若在输入输出类里.需要加iOS::标识符号。与这些条件状态对应的就是设置、读取和判断条件状态的流对象的成员函数。

他们主要有:
s.eof():若流s的eofbit置位,则返回true;
s.fail():若流s的failbit置位,则返回true;
s.bad():若流s的badbit置位,则返回true;
s.good():若流s的goodbit置位,则返回true;
s.clear(flags):清空状态标志位,并将给定的标志位flags置为1,返回void。
s.setstate(flags):根据给定的flags条件状态标志位,将流s中对应的条件状态位置为1,返回void。
s.rdstate():返回流s的当前条件状态,返回值类型为strm::iostate。strm::iostate 机器相关的整形名,由各个iostream类定义,用于定义条件状态。

#include <iostream>
using namespace std;int main()
{
char ch, str[20]; cin.getline(str, 5);cout<<"flag1:"<<cin.good()<<endl;    // 查看goodbit状态,即是否有异常cin.clear();                         // 清除错误标志cout<<"flag1:"<<cin.good()<<endl;    // 清除标志后再查看异常状态cin>>ch; cout<<"str:"<<str<<endl;cout<<"ch :"<<ch<<endl;system("pause");return 0;
}

程序输入:12345[回车]
在这里插入图片描述
可以看出,因输入缓冲区未读取完造成输入异常,通过clear()可以清除输入流对象cin的异常状态。不影响后面的cin>>ch从输入缓冲区读取数据。因为cin.getline读取之后,输入缓冲区中残留的字符串是:5[换行],所以cin>>ch将5读取并存入ch,打印输入并输出5。

如果将clear()注释,cin>>ch;将读取失败,ch为空。
cin.clear()等同于cin.clear(ios::goodbit);因为cin.clear()的默认参数是ios::goodbit,所以不需显示传递,故而你最常看到的就是:
cin.clear()。

2、cin.get()——读取一个字符

#include <iostream>
using namespace std;int main()
{char a;char b;a = cin.get();cin.get(b);cout << a << b << endl;system("pause");return 0;
}

程序输入:3456[回车]
在这里插入图片描述

Tips:空格与回车也算一个字符

3、cin.get()——读取一行 & 指定读取最大位数 & 指定结束符(默认换行)

istream& get ( char* s, streamsize n ) // 读取一行,指定读取n个数
istream& get ( char* s, size_t n, streamsize delim ) // 读取一行,指定读取n个数,且指定结束字符

空格不会终止输入,碰到换行符才会停止输入

#include <iostream>
using namespace std;int main()
{char array[20] = { NULL };cin.get(array, 20);cout << array ;system("pause");return 0;
}

程序输入:3456 789[回车]
在这里插入图片描述

#include <iostream>
using namespace std;int main()
{char array[20] = { NULL };cin.get(array,20,'b');cout << array ;system("pause");return 0;
}

程序输入:adgd yuibklohg[回车]
在这里插入图片描述

4、cin.getline——输入一行 且 指定结束符(默认换行)

istream& getline(char* s, streamsize count); // 默认以换行符结束
istream& getline(char* s, streamsize count, char delim); // 读取一行,指定读取n个数,且指定结束字符

使用方法和cin.get相同
cin.getlinecin.get的区别是,cin.getline不会将结束符或者换行符残留在输入缓冲区中。

5、cin.ignore——清空输入缓冲区

从上文中可以看出,上一次的输入操作很有可能是输入缓冲区中残留数据,影响下一次的输入。
那么如何解决这个问题呢?
自然而然,我们想到了在进行输入时,对输入缓冲区进行清空和状态条件的复位。条件状态的复位使用clear(),清空输入缓冲区应该使用:

函数原型:istream &ignore( streamsize num=1, int delim=EOF );
函数作用:跳过输入流中n个字符,或在遇到指定的终止字符时提前结束(此时跳过包括终止字符在内的若干字符)。

使用示例如下:

#include <iostream>
using namespace std;int main()
{char str1[20]={NULL},str2[20]={NULL};cin.getline(str1,5);cin.clear();  // 清除错误标志   cin.ignore(numeric_limits<std::streamsize>::max(),'\n'); //清除缓冲区的当前行cin.getline(str2,20);cout<<"str1:"<<str1<<endl;cout<<"str2:"<<str2<<endl;system("pause");return 0;
}

程序输入:12345[回车]success[回车]
在这里插入图片描述

注意:
(1)程序中使用cin.ignore清空了输入缓冲区的当前行,使上次的输入残留下的数据没有影响到下一次的输入,这就是ignore()函数的主要作用。其中,numeric_limits::max()不过是头文件定义的流使用的最大值,你也可以用一个足够大的整数代替它。
如果想清空输入缓冲区,去掉换行符,使用:
cin.ignore(numeric_limits< std::streamsize>::max()); 清除cin里所有内容。
(2)cin.ignore();当输入缓冲区没有数据时,也会阻塞等待数据的到来。

参考资料:
C++中cin的详细用法
(超全,超经典)字符串函数与易错点
C++ cin.get用法(详解版)

三、<string.h>——字符串处理函数库

字符串处理函数:1-4

1、strcpy()——复制字符串

在这里插入图片描述

2、strncpy()——复制指定位数字符串

3、strcat()——连接字符串

在这里插入图片描述

4、strncat()——复制指定位数字符串

在这里插入图片描述

字符串比较函数:5-6

5、strcmp()——比较字符串

在这里插入图片描述

6、strncmp()——比较指定位数字符串

在这里插入图片描述

字符串查找函数:7-13

7、strchr()——返回 字符c 在字符串s 第一次出现的地址

在这里插入图片描述

8、strcspn()——返回 字符串s2 在字符串s1 第一次出现的下标

在这里插入图片描述

9、strspn()——返回 字符串s2 在字符串s1 第一个未出现字符的下标

在这里插入图片描述

10、strpbrk()——返回 字符串s2 在字符串s1 第一次出现的地址

在这里插入图片描述

11、strrchr()——返回 字符c 在字符串s 最后出现的地址

在这里插入图片描述

12、strstr()——返回 字符串s2 在字符串s1 第一次出现的地址

在这里插入图片描述

13、strtok()——返回 字符c 在字符串s 第一次出现的地址 并将该位置的字符设为’\0’

在这里插入图片描述
图片内程序有些不清楚,下面重新打了一遍

char a[13]="4cabc56c78c9";
char *c=strtok(a,"ab");
//搜索s2中的第一个字符,将s1中的该字符覆盖为'\0',strtok函数保存标号后‘\0’的地址,返回标号第一个字符地址。
printf("*%s*\n",c);
c=strtok(nullptr,"z");
//返回搜索起始字符地址,保存nullptr。
printf("*%s*\n",c);
c=strtok(nullptr,"c");
//当strtok保存的本来就是nullptr,返回nullptr。
printf("*%s*\n",c);
for(int n=0;n<13;n++)
printf("%c",a[n]);

在这里插入图片描述

内存处理函数:14-18

14、memcpy()——将s2的前n位字符 覆盖 s1的前n位字符

在这里插入图片描述

15、memmove()——先将s2里的前n位字符复制到 一个临时数组,然后再覆盖s1的前n位字符

在这里插入图片描述

16、memcmp()——与strncmp相同,只不过memcmp不止可以处理字符串

在这里插入图片描述

17、memchr()——与strchr相同,只不过需要用void*定义的指针去接收地址

在这里插入图片描述

18、memset()——将c覆盖s的前n位,返回指向s的void型指针

在这里插入图片描述

19、strerror ()——返回指向错误号字符串的指针

在这里插入图片描述

20、strlen()——返回字符串结束符前面字符的个数

在这里插入图片描述

21、getline()——输入一行字符串,遇到换行符停止,保存时不保存换行符

在这里插入图片描述

参考资料:
(超全,超经典)字符串函数与易错点
C++中cin的详细用法

四、<stdlib.h>——通用工具函数库

1、strtod()——将字符串转为双精度浮点数

在这里插入图片描述

2、strtol()——将字符串转为长整型数

在这里插入图片描述

3、strtoul()——将字符串转为无符号长整形数

在这里插入图片描述

4、exit() 和 atexit()——程序终止与程序反向运行

1. exit()

函数exit强制终止程序的运行。

2. atexit()

在程序结束时(包括被exit()打断的)按照相反的顺序运行函数

#inc2024.01.22)
# 一、lude<stdio.h>
#include<stdlib.h>void a(void)
{printf("%s\n","this is a;");
}void b(void)
{printf("%s\n","this is b;");
}void c(void)
{printf("%s\n","this is c;");
}int main()
{printf("%s\n","this is main first;");//在程序结束时按照相反的顺序运行函数atexit(a);atexit(b);atexit(c);printf("%s\n","this is main;");exit(EXIT_SUCCESS);printf("%s\n","this is main 2;");
}

结果为

this is main first;
this is main;
this is c;
this is b;
this is a;

参考资料:
(超全,超经典)字符串函数与易错点
(学习日记)2024.01.20:通用工具库stdlib.h里好玩的函数

五、<ctype.h>——字符处理函数库

1、isblank()——判断是否为空格

在这里插入图片描述

2、isdigit()——判断是否为数字

在这里插入图片描述

3、isalpha()——判断是否为大写字母 或 小写字母

在这里插入图片描述

4、isalnum()——判断大写字母 或 小写字母 或 数字

在这里插入图片描述

5、isxdigit()——判断是否为十六进制的数字

在这里插入图片描述

6、islower()——判断是否为小写字母

在这里插入图片描述

7、isupper()——判断是否为大写字母

在这里插入图片描述

8、tolower()——将大写字母 改为 小写

在这里插入图片描述

9、toupper()——将小写字母 改为 大写

在这里插入图片描述

10、isspace()——判断是否为空白字符 换行符(‘\n’)空格符(’ ‘)换页符(’\f’)回车符(‘\r’)水平制表符(‘t’)垂直制表符(‘\v’)

在这里插入图片描述

11、iscntrl()——判断是否为空白字符 水平制表符(‘\t’)垂直制表符(‘\v’)换页符(‘\f’)报警符(‘\a’)退格符(\b’)回车符(‘\r’)换行符(‘\n’)空字符(‘\0’)

在这里插入图片描述

12、ispunct()——判断是否为空格 数字 字母以外的 可打印字符

在这里插入图片描述

13、isprint()——判断是否为 大写字母 小写字母 数字 标点符号 空格符

在这里插入图片描述

14、sgraph()——判断是否为 大写字母 小写字母 数字 标点符号

在这里插入图片描述

参考资料:
(超全,超经典)字符串函数与易错点

六、<Windows.h>——windows操作工具

Windows.h是一个重要的头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件。

这些头文件中最重要的和最基本的是:

  • Windef.h 基本数据类型定义。
  • Winnt.h 支持Unicode的类型定义。
  • Winbase.h Kernel(内核)函数。
  • Winuser.h 用户界面函数。
  • Wingdi.h 图形设备接口函数。

这些头文件定义了Windows的所有资料型态、函数调用、资料结构和常数识别字,它们是Windows文件中的一个重要部分。

1、FindWindow()——返回的窗口的句柄

寻找窗口 类名称 标题 spy++获取 返回的窗口的句柄

2、GetForegroundWindow()——获取当前的活动窗口

获取当前的活动窗口

3、SetForegroundWindow()——设置当前的活动窗口

设置当前的活动窗口

4、keybd_event()——模拟按键

模拟按键

(其中
ESC键VK_ESCAPE (27)
回车键:VK_RETURN (13)
TAB键:VK_TAB (9)
Caps Lock键:VK_CAPITAL (20)
Shift键:VK_SHIFT (16)
Ctrl键:VK_CONTROL (17)
Alt键:VK_MENU (18)
空格键:VK_SPACE (32)
退格键:VK_BACK (8)
左徽标键:VK_LWIN (91)
右徽标键:VK_RWIN (92)
鼠标右键快捷键:VK_APPS (93)
Insert键:VK_INSERT (45)
Home键:VK_HOME (36)
Page Up:VK_PRIOR (33)
PageDown:VK_NEXT (34)
End键:VK_END (35)
Delete键:VK_DELETE (46)
方向键(←):VK_LEFT (37)
方向键(↑):VK_UP (38)
方向键(→):VK_RIGHT (39)
方向键(↓):VK_DOWN (40)
F1键:VK_F1 (112)
F2键:VK_F2 (113)
F3键:VK_F3 (114)
F4键:VK_F4 (115)
F5键:VK_F5 (116)
F6键:VK_F6 (117)
F7键:VK_F7 (118)
F8键:VK_F8 (119)
F9键:VK_F9 (120)
F10键:VK_F10 (121)
F11键:VK_F11 (122)
F12键:VK_F12 (123)
Num Lock键:VK_NUMLOCK (144)
小键盘0:VK_NUMPAD0 (96)
小键盘1:VK_NUMPAD1 (97)
小键盘2:VK_NUMPAD2 (98)
小键盘3:VK_NUMPAD3 (99)
小键盘4:VK_NUMPAD4 (100)
小键盘5:VK_NUMPAD5 (101)
小键盘6:VK_NUMPAD6 (102)
小键盘7:VK_NUMPAD7 (103)
小键盘8:VK_NUMPAD8 (104)
小键盘9:VK_NUMPAD9 (105)
小键盘。:VK_DECIMAL (110)
小键盘*:VK_MULTIPLY (106)
小键盘+:VK_ADD (107)
小键盘-:VK_SUBTRACT (109)
小键盘/:VK_DIVIDE (111)
Pause Break键:VK_PAUSE (19)
Scroll Lock 键 :VK_SCROLL(145)

参考资料:
有意思的函数

这篇关于(笔记总结)C/C++语言的常用库函数(持续记录,积累量变)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/636600

相关文章

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

Windows下C++使用SQLitede的操作过程

《Windows下C++使用SQLitede的操作过程》本文介绍了Windows下C++使用SQLite的安装配置、CppSQLite库封装优势、核心功能(如数据库连接、事务管理)、跨平台支持及性能优... 目录Windows下C++使用SQLite1、安装2、代码示例CppSQLite:C++轻松操作SQ

C++中RAII资源获取即初始化

《C++中RAII资源获取即初始化》RAII通过构造/析构自动管理资源生命周期,确保安全释放,本文就来介绍一下C++中的RAII技术及其应用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、核心原理与机制二、标准库中的RAII实现三、自定义RAII类设计原则四、常见应用场景1. 内存管理2. 文件操

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五