C/C++基本操作

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.

(13条消息) 函数返回char* 的解决方案_芒果儿-CSDN博客_返回char*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值