1.函数运行时间计时:
clock_t start = clock();
函数体;
clock_t end = clock();
double time = (double)(end - start)/CLOCKS_PER_SEC;
2.文件内容操作:
fstream file;
std::ostringstream oss;
oss<<"file_1.txt";
filie.open(oss.str().c_str(),ios_base::out|ios_base::trunc);//ios_base后面的内容用于控制文件。
file<<"写入的数据"<<"\n";
file.close();
file.clear();
3.release版本exe使用性能检测无法进入函数的解决方法:
无法进入函数主要是因为release版本没有生成pdb文件,修改设置就可生成。详见:VS2015 让Release程序生成pdb文件可以加dump调试的Release版本_yhc166188的博客-CSDN博客_release 生成pdb
前两步是exe运行依赖的库的修改,第三步是main函数所在工程属性的修改。
4.查看指针指向内存大小的方法:
char* ptr = "sdf";
int s = strlen(ptr);
printf("ptr value is:%s \n", ptr);
使用sizeof不行。
5.返回环境变量PATH的值
char* ptr = getenv("PATH");
printf("ptr value is:%s \n", ptr);
6.字符串拷贝
char str[10] = { 0 };
snprintf(str, 10 ,"0123456789");
printf("str=%s/n", str);
snprintf速度比memcpy,strcpy要慢,但是适用范围广。要注意第二个参数(该参数的值为 拷贝字节数(Bytes)),如果值大于目标对象可以承受的大小,将会运行出错。
7.fopen和fopen_s
fopen用法: fp = fopen(filename,"w")。
fopen_s用法:,须定义另外一个变量errno_t err,然后err = fopen_s(&fp,filename,"w")。
返回值: fopen打开文件成功,返回文件指针(赋值给fp),打开失败则返回NULL值;
fopen_s打开文件成功返回0,失败返回非0。
在定义FILE * fp 之后,fopen的用法是: fp = fopen(filename,"w")。而对于fopen_s来说,还得定义另外一个变量errno_t err,然后err = fopen_s(&fp,filename,"w")。返回值的话,对于fopen来说,打开文件成功的话返回文件指针(赋值给fp),打开失败则返回NULL值;对于fopen_s来说,打开文件成功返回0,失败返回非0。
8.获取年月日
(12条消息) localtime、localtime_s、localtime_r的使用_开源的才是世界的-CSDN博客_localtime_r
9.指针学习
int a = 10;
int aa = 100;
int* s = nullptr;
int* p = &a;
//int* p = s;
printf("p value is:%d \n", *p);
int& c = *p;
printf("c value is:%d \n", c);
c = aa;
printf("c value is:%d \n", c);
10.g++指令
g++ -o testmysql -std=c++14 -I/usr/include/jdbc -L/usr/lib/private -lcrypto -lssl -lmysqlcppconn testmysql.cpp
链接库 -l 时,如果库的名称为libssl.so,则 -lssl,如果库的名称为libcrypto.so,则-lcrypto.
11.C++等待一段时间
#include // std::thread, std::thread::id, std::this_thread::get_id
#include
this_thread::sleep_for(chrono::seconds(2));
12.Windows下安装Mysql
Windows下安装MySQL详细教程 - m1racle - 博客园 (cnblogs.com)
MySQL的安装与配置——详细教程 - Winton-H - 博客园 (cnblogs.com)
注意一点:新建用户时需要注意一个问题,更改密码需要加上password单词修饰,如下语句会出错: update mysql.user set authentication_string=("123456") where user="root";
建议使用:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
13.mysql种创建用户、修改host的值及更新
use mysql;//使用名为mysql的database;
CREATE USER "rdapp"@"%";//在USER表中创建名为rdapp的用户(该用户Host列的值为%)
SET PASSWORD FOR "rdapp"@"%" = PASSWORD("Nucleus!");//设置名为rdapp用户的密码
ALTER USER 'rdapp'@'%' IDENTIFIED WITH mysql_native_password BY 'Nucleus!';//修改名为rdapp的用户的密码为Nucleus!
GRANT ALL PRIVILEGES ON *.* TO "rdapp"@"%" WITH GRANT OPTION;//设置名为rdapp用户的host权限为%(%表示该用户能够在其他机器连接mysql)
GRANT ALL PRIVILEGES ON *.* TO "rdapp"@"localhost" WITH GRANT OPTION;//设置名为rdapp用户的host权限为localhost(localhost表示该用户只能在本机连接mysql)
FLUSH PRIVILEGES;//刷新
14.释放nohup.out占用的磁盘空间 - 简书 (jianshu.com)
使用 lsof|grep delete 来查看。
然后使用 kill -9 + 进程号删除进程,比如 kill -9 7410,进程号时lsof|grep delete查询结果的第二列。
15.基于C++11的线程池(threadpool),简洁且可以带任意多的参数 - _Ong - 博客园 (cnblogs.com)
学习使用线程池。
16.enum的大小为4字节,可以通过sizeof来测试。
详见:枚举类型enum详解——C语言 - 蓝海人 - 博客园 (cnblogs.com)
重点:
typedef enum week{Mon = 1, Tues, Wed, Thurs}my;
那么my等价于 enum week
17.cmake编译类型
RelWithDebInfo
18.
Windows下在c++程序中执行PowerShell指令,
string sss = "COPY f:\sd\\44011250001320390033.jpg f:\sd\\44011250001320390033-2.jpg";
system(sss.c_str());
注意:仿佛 \ 也能够使用,但是在遇到数字时需要使用到双斜杠-- \\ ,
详见:(8条消息) C/C++中system()函数详解_阿桑的专栏-CSDN博客_c++ system函数
19.
C语言#if、##ifdef、#ifndef的用法详解,C语言条件编译详解 (biancheng.net)
#if _WIN32
printf("This is Windows!\n");
#else
printf("Unknown platform!\n");
#endif
#if __linux__
printf("This is Linux!\n");
#endif
20.