昆山网站制作 微博,为网站网站做代理怎么判,街舞舞团公司做网站,seo广告投放是什么意思写在前面#xff1a; 由于时间的不足与学习的碎片化#xff0c;写博客变得有些奢侈。 但是对于记录学习#xff08;忘了以后能快速复习#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位#xff0c;以时间为顺序#xff0c;仅仅将博客当做一个知识学习的目录 由于时间的不足与学习的碎片化写博客变得有些奢侈。 但是对于记录学习忘了以后能快速复习的渴望一天天变得强烈。 既然如此 不如以天为单位以时间为顺序仅仅将博客当做一个知识学习的目录记录笔者认为最通俗、最有帮助的资料并尽量总结几句话指明本质以便于日后搜索起来更加容易。 标题的结构如下“类型”“知识点”——“简短的解释” 部分内容由于保密协议无法上传。 点击此处进入学习日记的总目录 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垂直制表符\v11、iscntrl——判断是否为空白字符 水平制表符\t垂直制表符\v换页符\f报警符‘\a’退格符\b回车符‘\r’换行符\n空字符\012、ispunct——判断是否为空格 数字 字母以外的 可打印字符13、isprint——判断是否为 大写字母 小写字母 数字 标点符号 空格符14、sgraph——判断是否为 大写字母 小写字母 数字 标点符号 六、Windows.h——windows操作工具1、FindWindow——返回的窗口的句柄2、GetForegroundWindow——获取当前的活动窗口3、SetForegroundWindow——设置当前的活动窗口4、keybd_event——模拟按键 一、stdio.h——标准输入/输出库
1、scanf与printf——输入与输出
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用来输入和输出doubledouble输出用%f和%lf都可以%Lf用来输入和输出long double%e用来输入和输出指数字母小写%le用来输入和输出长指数字母小写%E用来输入和输出指数字母大写%lE用来输入和输出长指数字母大写%g用来输入和输出指数或float输出最短的一种字母小写%lg用来输入和输出长指数或double输出最短的一种字母小写%G用来输入和输出指数或float输出最短的一种字母大写%lG用来输入和输出长指数或double输出最短的一种字母大写
scanf独有
格式说明符解释%*所有类型如%*d用来输入一个数字符或字符串而不赋值跳过无关输入如scanf(“%d%*c%d”,a,b);这样就可以只将12中的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-20scanf“%d%d%d”a,b,c;需输入2018:11:20所有字符串符号包括空格数字不与输入数相挨任何所写的东西都必须如横杠一般先输入不赋值不然系统报错scanf“%d 456 %d”,a,b;需输入 1 456 71和7之间有 456 前后各一个空格结果为a1 b7
printf独有
格式说明符解释%m.nd %-m.ndm和n为常数m用于在d位数小于m时补空格右对齐d位数大于m时忽略如%5d输出123 123123前面两个空格.n用于在d位数小于n时补0右对齐d位数大于n时忽略如%.5d输出123 00123123前面两个0%-m.nd则为左对齐%m.nf %m.nlf %m.nLf%-m.nf %-m.nlf %-m.nLfm用于在小数位数小于m时补空格右对齐小数位数大于m时忽略 (小数点算一位如%6f 需输出3.14 结果为 3.143.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 abcabc前面两个空格.n用于控制字符串位数 长度大于n则仅输出前n位字符串长度小于于n时忽略如%.6s 需输出abcdefg 结果为abcdef如%6f 需输出abc 结果为abc%-m.ns则为左对齐%mc %-mcm限制char的输出长度 当m1时在左方补m-1个空格%-mc则为左对齐%m.ne %-m.ne%m.nE %-m.nEm用于控制指数长度在QT中指数部分占五位如 e001 位数小于m时左方补空格 位数大于m时忽略如printf(“%15.5e”,a); 设a为123.456789结果为 1.23457e002三个空格.n用于控制小数长度 小数部分长度大于n则四舍五入小数部分长度小于于n则补0如printf(“%15.5e”,a); 设a为123.456789结果为 1.23457e002三个空格%-m.ne %-m.nE则为左对齐%*整型如%d%-整型在输出项中规定整型数据的宽度少于限制补空格大于忽略如printf“%d”,a,b;a5 b123结果为 123前面有两个空格%-整型 左对齐%0*整型在输出项中规定整型数据的宽度少于限制补0大于忽略如printf“%0*d”,a,b;a5 b123结果为 00123注意printf中的运算是从右至左而输出是从做左至右如a1printf“%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);输入 ABCdef/e输出 ABCde
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 iostreamusing 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);coutflag1:cin.good()endl; // 查看goodbit状态即是否有异常cin.clear(); // 清除错误标志coutflag1:cin.good()endl; // 清除标志后再查看异常状态cinch; coutstr:strendl;coutch :chendl;system(pause);return 0;
}程序输入12345[回车] 可以看出因输入缓冲区未读取完造成输入异常通过clear()可以清除输入流对象cin的异常状态。不影响后面的cinch从输入缓冲区读取数据。因为cin.getline读取之后输入缓冲区中残留的字符串是5[换行]所以cinch将5读取并存入ch打印输入并输出5。
如果将clear()注释cinch;将读取失败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.getline与cin.get的区别是cin.getline不会将结束符或者换行符残留在输入缓冲区中。
5、cin.ignore——清空输入缓冲区
从上文中可以看出上一次的输入操作很有可能是输入缓冲区中残留数据影响下一次的输入。 那么如何解决这个问题呢 自然而然我们想到了在进行输入时对输入缓冲区进行清空和状态条件的复位。条件状态的复位使用clear()清空输入缓冲区应该使用 函数原型istream ignore( streamsize num1, int delimEOF ); 函数作用跳过输入流中n个字符或在遇到指定的终止字符时提前结束此时跳过包括终止字符在内的若干字符。 使用示例如下
#include iostream
using namespace std;int main()
{char str1[20]{NULL},str2[20]{NULL};cin.getline(str1,5);cin.clear(); // 清除错误标志 cin.ignore(numeric_limitsstd::streamsize::max(),\n); //清除缓冲区的当前行cin.getline(str2,20);coutstr1:str1endl;coutstr2:str2endl;system(pause);return 0;
}程序输入12345[回车]success[回车] 注意 1程序中使用cin.ignore清空了输入缓冲区的当前行使上次的输入残留下的数据没有影响到下一次的输入这就是ignore()函数的主要作用。其中numeric_limits::max()不过是头文件定义的流使用的最大值你也可以用一个足够大的整数代替它。 如果想清空输入缓冲区去掉换行符使用 cin.ignore(numeric_limits std::streamsize::max()); 清除cin里所有内容。 2cin.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 *cstrtok(a,ab);
//搜索s2中的第一个字符,将s1中的该字符覆盖为\0,strtok函数保存标号后‘\0’的地址返回标号第一个字符地址。
printf(*%s*\n,c);
cstrtok(nullptr,z);
//返回搜索起始字符地址保存nullptr。
printf(*%s*\n,c);
cstrtok(nullptr,c);
//当strtok保存的本来就是nullptr返回nullptr。
printf(*%s*\n,c);
for(int n0;n13;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)
# 一、ludestdio.h
#includestdlib.hvoid 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 UpVK_PRIOR (33) PageDownVK_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) 小键盘0VK_NUMPAD0 (96) 小键盘1VK_NUMPAD1 (97) 小键盘2VK_NUMPAD2 (98) 小键盘3VK_NUMPAD3 (99) 小键盘4VK_NUMPAD4 (100) 小键盘5VK_NUMPAD5 (101) 小键盘6VK_NUMPAD6 (102) 小键盘7VK_NUMPAD7 (103) 小键盘8VK_NUMPAD8 (104) 小键盘9VK_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) 参考资料 有意思的函数