
C/C++ 基础
禾烟雨
这个作者很懒,什么都没留下…
展开
-
c++ 打印当前时间(精确到毫秒)
但是因为一些情况,我开多线程开的不方便打印结束时间,同事跟我说那你把开始时间打印一下,结束他自己接受那边打印,最好精确到毫秒。打印时间精确到毫秒好实现,但是那种对用户可读性不好,更适合开头记一次结尾记一次,打印中间减出来的程序运行时间。具体原理我先放放,等有空了再研究。试了好多,最后选择用这个。原创 2023-08-04 10:39:41 · 1846 阅读 · 0 评论 -
c++ 面试错题整理
这个友元函数他不属于该类的成员函数,他是定义在类外的普通函数,只是在类中声明该函数可以直接访问类中的private或者protected成员,所以友元函数访问对象的成员不受访问特性影响,C没有问题。函数模板是一类通用的函数定义,可以接受不同类型的参数,但是只有在程序员将其实例化为具体的类型之后,它才能成为可执行的模板函数。我对这个答案持怀疑态度,我查了一下,A是没问题的,主要是B,指针可以重新赋值,但是引用不可以。友元函数可以是不属于任何类的非成员函数,也可以是另一个类的成员函数,因此B没有问题。原创 2023-07-27 23:40:46 · 1042 阅读 · 0 评论 -
c++ 知识点整理(自用)
【代码】c++ 知识点整理(自用)原创 2023-01-31 09:02:13 · 119 阅读 · 0 评论 -
c++批量修改pdf文件名 图片文件名
pdf是扫描文件,文件名顺序就是扫描先后顺序,新文件名存放在csv文件中(不能是utf8的那个csv文件,我还写了个utf8的格式转换函数,但是还是在新的地方又出现了乱码)。一些碎碎念,我忘了二维char数组怎么用了,结果用结构体代替了发现更顺手了。utf8的转换函数没有删,但是也没有调用。把exe放到要处理的文件夹中,双击就可以执行替换。原创 2022-11-23 23:28:03 · 540 阅读 · 2 评论 -
visual studio编译出的exe执行时找不到vcrunime140d.dll库的解决办法
有visual studio环境是不会出现这个异常的(我换电脑试过了),没有这个环境的,把vs的dll复制进C:\Windows\SysWOW64的路径,会报新的异常。VS编译程序缺失msvcp140d.dll、vcruntime140d.dll和ucrtbased.dll解决方法。这个dll我自己库里都没有(当然可能路径没有找对),所以不推荐硬来,对用户体验很不友好,不然打包成exe是图啥。将debug改为release,运行库改为多线程,重新生成,就可以脱离环境正常执行了。EXE程序缺DLL怎么办。原创 2022-11-23 23:19:10 · 3265 阅读 · 2 评论 -
通过dll动态链接库,使用java调用c++代码(eclipse+visual studio2019)详细教程
之前有写过c++调用c++的dllhttps://blog.youkuaiyun.com/mandiheyanyu/article/details/120411187这个里边虽然也涉及了java对dll的调用,但是因为当初写这个的时候,代码是别人直接拿给我的,我只要编译就行了,这篇这里是完整过程。正确安装visual studio、eclipse、jdk。我用的是eclipse,项目名什么的都是随便起的(命名十分不规范,已经被吐槽过了)。包名叫nist,类名叫NistDll,先声明好函数的名称、参数、返回值类型原创 2022-05-13 09:35:09 · 823 阅读 · 0 评论 -
java调用c++编译的dll报错
# A fatal error has been detected by the Java Runtime Environment:## EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00007ffeb12b5114, pid=432, tid=9964## JRE version: OpenJDK Runtime Environment (16.0.2+7) (build 16.0.2+7-67)# Java VM: OpenJDK 64-Bi原创 2022-05-12 14:18:04 · 494 阅读 · 0 评论 -
Visual Studio 2019 DLL生成使用 x64 C++ Java Windows
Visual Studio 2019默认的配置是x86,我去查了一下是32位的,而我们要是64位的,要选那个x64。(但是我不明白为什么32位的他们就不能用了,不是应该向下兼容的么)参考了这个教程,但是一步一步跟着它的走实际上我是会报错的,查了一下是dll没读到,教程里是直接把dll复制到该项目的Debug文件夹下的。https://blog.youkuaiyun.com/Giser_D/article/details/89677441为了防止原链接挂掉,相同步骤我也简单复述一下。打开Visual Studio原创 2021-09-22 11:57:36 · 2136 阅读 · 0 评论 -
c++ char[]与int之间的类型转换
char数组转int,int转char数组。#include <cstdio>#include <iostream>#include <stdlib.h>using namespace std;int main(int argc , char *argv[]){ int n = 0; char str[110] = "1234"; //char[]转int n = atoi(str); printf("%d\n", n); //int转原创 2022-04-05 21:04:34 · 8070 阅读 · 0 评论 -
C++二进制文件读入读出
从网上看了看教程,然后自己又根据需要做了一些调整。C++ read()和write()读写二进制文件(超级详细)http://c.biancheng.net/view/7603.html二进制文件读取#include <iostream>#include <cstdio>#include <fstream>#include <cstring>#include <string>using namespace std;int mai原创 2022-03-10 16:57:23 · 4039 阅读 · 0 评论 -
C++ 输入空格隔开的一行数,到回车换行中止
不指定输入长度,以空格为分割,连续输入数据,直到回车换行中止。我很早之前是傻乎乎的先全当字符串读进去,然后再分割再类型转换,甚至手写过字符串转数组(真的是很早之前干的事了)。然后今天要读入十六进制数,这个字符串转的话还不太好转,我就去网上搜了一下,发现我真的是傻掉了。我可以进个循环,循环里读一个再读一个字符,再判断字符是不是换行,如果是的话就终止循环。我写的这个是读的16进制数,改成int的读普通整数也行。#include <cstdio>#include <iostream>原创 2022-03-09 10:58:53 · 4337 阅读 · 0 评论 -
C++ 程序运行时间输出显示
要加上头文件#include <ctime>在int main花括号里的最上面和最下面加入这两段代码#include <ctime>int main(){ time_t begin,end; double ret; begin=clock(); /*中间正常书写代码*/ end = clock(); ret = double(end - begin) / CLOCKS_PER_SEC; cout << endl; cout <<原创 2021-09-28 09:06:39 · 2202 阅读 · 3 评论 -
c/c++ csvTXTdat等类型文件输入输出
1 将控制台输入输出整体改为文件输入输出数据输入和正常在控制台的时候相同,该空格空格该回车回车,输入输出这两句可以分开用,没有这个设置的话默认还是在控制台输入或输出,在main的最开头加上这两行,后边的代码可以正常书写。相对路径为该程序编译后生成的exe的所在位置,可改为绝对路径。#include <stdio.h>int main(){ freopen("in.csv","r",stdin); //读入in.csv文件 freopen("out.csv","w",stdou原创 2021-11-29 14:26:58 · 1611 阅读 · 0 评论 -
c++使用system进行文件传输后发生中文乱码(Windows Linux)
在代码开头加上中文编码定义就可以了,Windows和Linux问题通用,解决方法通用。#include <iostream>setlocale(LC_ALL,"zh-CN"); //设置程序为中文编码原创 2021-12-07 11:00:10 · 608 阅读 · 0 评论 -
c++ char数组与char在调用函数时传参的差异
我不理解,先直接记住,看改天能不能填坑。#include <cstdio>#include <iostream>using namespace std;void xorrr(char xx, char yy){ xx^=yy;}void xorr(char xx[1][1], char yy[1][1]){ xx[0][0]^=yy[0][0];}int main(){ char a, b; char x[1][1],y[1][1];原创 2022-03-04 17:06:56 · 462 阅读 · 0 评论 -
getc()读取文件读到一半就终止的解决办法
最近在写aes,把加密的结果存在本地文件中然后再读出来解密,因为是加密过后的十六进制数转的字符,和正常的键盘输入不太一样,然后我从文件读取的时候就出现问题了,读到一半就发现它自动停止了。贴一下我出错时候的代码int readStrFromFile(char* fileName, char* str) { FILE* fp = fopen(fileName, "rb"); if (fp == NULL) { printf("打开文件出错,请确认文件存在当前目录下!\n"); exit(0);原创 2022-03-07 17:12:51 · 626 阅读 · 0 评论