
C++
文章平均质量分 60
the_sea1
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C/C++ 获取当前进程工作目录GetCurrentDirectory()以及设置当前进程的工作目录SetCurrentDirectory()
GetCurrentDirectory()获取当前进程工作目录SetCurrentDirectory()切换当前进程的当前工作目录。头文件:#include<Windows.h>函数原型:DWORDGetCurrentDirectory(DWORDnBufferLength, // size of directory buffer 缓冲区的长度LPTSTRlpBuffer // directory buffer 指定一个预定义字串,用于装载当前目录);...原创 2021-01-09 11:33:19 · 9064 阅读 · 2 评论 -
C/C++获取特殊路径函数SHGetSpecialFolderPath()
SHGetSpecialFolderPath函数检索由其CSIDL标识的特殊文件夹的路径。所在头文件#include <shlobj.h>#pragma comment(lib, "shell32.lib")函数原型:BOOL SHGetSpecialFolderPath( HWND hwndOwner, LPTSTR lpszPath, int nFolder, BOOL fCreate);参数:hwndOwner:如果显示对话框或消息框,窗口的句.原创 2021-01-09 09:30:35 · 3368 阅读 · 0 评论 -
读写注册表信息
1.简介:注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件,用于存储系统和应用程序的设置信息。16位驱动在Winnt (Windows New Technology)下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS(基本输入输出系统)来控制的。在Win95下,16位驱动会继续以实模式方式设备工作,它们使用system.ini来控制。16位应用程序会工作在NT或者Win95 下,它们的程序仍然会参考win.ini和system.ini原创 2020-11-04 15:21:45 · 521 阅读 · 0 评论 -
IP地址的三种表示方式是什么
IP地址的三种表bai示方式是点分十进制、网络字du节序、主机字节序。域名如zhi“ www.baidu.com”并不是IP地址的表示方式,“dao192.168.0.1”属于点分十进制。1、点分十进制点分十进制(Dotted Decimal Notation)全称为点分(点式)十进制表示法,是IPv4的IP地址标识方法。IPv4中用四个字节表示一个IP地址,每个字节按照十进制表示为0~255。点分十进制就是用4个从0~255的数字,来表示一个IP地址。如192.168.1.1。2、网络字节原创 2020-10-23 15:06:09 · 13918 阅读 · 0 评论 -
GetPrivateProfileString、GetPrivateProfileInt对.ini配置文件的读写
GetPrivateProfileString()函数原型:DWORD GetPrivateProfileString( LPCTSTR lpszSection, LPCTSTR lpszKey, LPCTSTR lpDefault, LPTSTR lpReturnedString, DWORD nSize, LPCTSTR lpFileNam...原创 2019-12-31 16:19:59 · 1257 阅读 · 0 评论 -
C++常用的文件操作路径函数
shlwapi.dll中的实用API函数发布在windows system目录下有这个动态链接库BOOL PathFileExists(LPCTSTR lpszPath)功能:检查文件/路径是否存在LPTSTR PathFindFileName(LPCTSTR pPath)功能:获得路径中的文件名例如: PathFindFileName( “c:\\Program Fi...转载 2019-12-24 14:00:28 · 1545 阅读 · 0 评论 -
指针和数组的地址运算问题
指针是一个用数值表示的地址。因此,您可以对指针执行算术运算。可以对指针进行四种算术运算:++、--、+、-。假设 ptr 是一个指向地址 1000 的整型指针,是一个 32 位的整数,让我们对该指针执行下列的算术运算:ptr++在执行完上述的运算之后,ptr 将指向位置 1004,因为 ptr 每增加一次,它都将指向下一个整数位置,即当前位置往后移 4 个字节。这个运算会在不影响内...原创 2019-12-12 10:54:34 · 499 阅读 · 0 评论 -
利用随机数抢红包
#define _CRT_SECURE_NO_WARNINGS#include "iostream"#include "time.h"#include "iomanip"#include "math.h"using namespace std;int main(){ int i, number; int bestMoney; //手气最佳的人 float tota...原创 2019-12-09 15:02:01 · 476 阅读 · 0 评论 -
输入输出大小写字符(putchar和getchar的使用)
要求:输入大写字符,输出相对应的小写字符,例如输入A,输出a 输入小写字符,输出相对应的大写字符,例如输入m,输出M。#define _CRT_SECURE_NO_WARNINGS#include "iostream"using namespace std;int main(){ cout << "输入大写字符:"; char a = ge...原创 2019-12-05 17:01:30 · 4310 阅读 · 0 评论 -
C++程序密码输入回显*
_getch()函数的作用是获取按键信息,且该函数在conio.h中定义。_getche()函数与_getch()函数函数类似,其作用也是获取按键信息,并且也是在conio.h中定义。_getch()函数不会在控制台中显示按键信息。_getch()函数是一个阻塞函数,直到有字符输入时才会返回,所以该函数不会返回错误值。#define _CRT_SECURE_NO_WARNINGS#inc...原创 2019-11-25 14:00:22 · 1284 阅读 · 0 评论 -
C/C++中几个常用的库函数
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。1.int/float to string/array:C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。● itoa():将整型值转换为字符串。● ltoa():将长整型值转换为字符串。● ultoa():将无符号长整型值转换...原创 2019-11-12 19:40:11 · 2331 阅读 · 0 评论 -
#pragma once与 #ifndef的区别
为了避免同一个文件被include多次可以用以下两种方法:1 #ifndef方式2 #pragma once方式在能够支持这两种方式的编译器上,虽然二者并没有太大的区别,但是两者仍然还是有一些细微的区别。方式一:#ifndef __SOMEFILE_H__ //文件名#define __SOMEFILE_H__... ... // 声明语句#endif方式二:...原创 2019-11-08 14:56:57 · 194 阅读 · 0 评论 -
VC++调试错误的解决方案
这篇文章主要用来记录使用Visual Studio过程中,出现的各种error,并提供自己当时解决的方案。但是,一个error可能由不同原因引起的,文中案例仅供大家参考。 nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex 解决:将工程设置为Using MFC in sta...原创 2019-11-08 14:52:18 · 3631 阅读 · 0 评论 -
VS的工作目录和输出目录
C+ +项目,解决方案总文件夹下就只包含解决方案配置文件sln和一个项目总文件夹和一个Debug文件夹以及一个Release文件夹(共四个东东,其中Debug和Release文件夹中存放最终生成的结果exe或dll,要注意如果不使用Release生成,则不存在Release文件夹),而项目总文件夹下包含C++源文件头文件、项目配置文件和一个Debug文件夹以及一个Release文件夹(一定要注意,...原创 2019-11-08 14:41:07 · 582 阅读 · 0 评论 -
MFC 下拉列表框的设置
MFC:MFC(Microsoft Foundation Classes),是一个微软公司提供的类库(class libraries)以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。MFC是WinAPI与C++的结合。API,即微软提供的Windows下...原创 2019-11-06 11:04:43 · 9185 阅读 · 0 评论 -
C++异常处理
异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw。throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。 catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。catch 关键字用于捕获异常。...原创 2019-10-30 17:02:13 · 248 阅读 · 0 评论 -
C++中cin.getline()和cin.ignore()函数
getline()函数:getline()函数是一个比较常见的函数。根据名字直接望文生义,就知道这个函数是来完成读入一行数据。getline是C++标准库函数;但不是C标准库函数,getline会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束。1)到文件结束,2)遇到函数的定界符,3)输入达到最大限度。在C++中本质上有两种getline函数:...原创 2019-10-30 16:35:51 · 2042 阅读 · 0 评论 -
C++文件和流
到目前为止,我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。这里我们说一下C++ 中另一个标准库 fstream,它定义了三个新的数据类型:数据类型 描述 ofstream 该数据类型表示输出文件流,用于创建文件并向文件写入信息。 ifstream 该数据类型表示输入文件流,用于从文件读取信息...原创 2019-10-30 15:47:12 · 283 阅读 · 0 评论 -
题目:求年龄
网友年龄某人新认识一网友。当问及年龄时,他的网友说:“我的年龄是个2位数,我比儿子大27岁,如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄”请你计算:网友的年龄一共有多少种可能情况?实例:30岁请填写表示可能情况的种数。代码:求100以内的情况int main(){ int count = 0; int number[2] = { 0 }; int j...原创 2019-10-29 10:58:17 · 254 阅读 · 0 评论 -
数据结构—队列queue
队列:队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列是有序集合,新添加的一端为队尾,另一端为队头,当一个元素从队尾进入队列时,一直向队首移动,直到它成为移除的元素为止。这种排序是先进先出FIFO,生活中常见的例子就是去学校...原创 2019-10-29 10:02:19 · 336 阅读 · 0 评论 -
数据结构—双向链表
双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点,时间复杂度为O(1)。双链表具有以下优点:1、删除单链表中的某个结点时,一定要得到待删除结点的前驱,得到该前驱有两种方法,第一种方法是在定位待删除结点的同时一路保存当前结点的前驱。第二种方法是在定位到待删除结点之后,重...原创 2019-10-28 16:57:01 · 3636 阅读 · 0 评论 -
数据结构—单向链表
单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始;链表是使用指针进行构造的列表;又称为结点列表,因为链表是由一个个结点组装起来的;其中每个结点都有指针成员变量指向列表中的下一个结点。相比较普通的线性结构:(1)单个结点创建非常方便,普通的线性内存通常在创建的时候就需要设定数据的大小(2)结点的删除非常方便,不需要像线性结构那样移...原创 2019-10-26 11:22:35 · 206 阅读 · 0 评论 -
C/C++ struct和typedef struct的区别
在C中:Student为标识符类似于变量名、函数名;struct Student为结构体类型;Stu1为结构体变量#include <stdio.h>#include <stdlib.h>struct Student { int a; //Student为标识符类似于变量名、函数名;struct Student为结构体...原创 2019-10-24 21:03:31 · 526 阅读 · 0 评论 -
string类型转int类型
String类型转int类型C语言形式:int main(){ string str = "123"; int i = atoi(str.c_str()); cout << i << endl; system("pause"); return 0;} C++形式:int main(){ string str = "123"...原创 2019-10-23 15:27:41 · 247 阅读 · 0 评论 -
当模板函数遇上同名的非模板函数时,该如何调用
当模板函数与同名的普通函数重载时,其调用顺序是怎样的呢?让我们实验一把,看一看它的调用顺序:示例代码如下:#include "iostream"using namespace std;void mySwap(int a, char b) { cout << "a:" << a << " " << "b:" << ...原创 2019-10-18 14:59:49 · 1831 阅读 · 0 评论 -
为什么含有纯虚函数的类,不能定义类对象
为什么含有纯虚函数的类,不能定义类对象?先从反面来讲:如果含有纯虚函数的类可以定义对象,那么该对象就应该可以调用类中的纯虚函数,但是纯虚函数是没有实现的,这就是个矛盾的。正面来讲:普通类具有成员函数,构造类的对象时,会对成员变量和成员函数分配内存。含有纯虚函数的类,定义了成员函数的地址是空,无法分配内存,该成员函数对类是没有意义的,失去了普通类的数据和方法绑定于同一对象中的意义,因此...原创 2019-10-16 10:07:30 · 4482 阅读 · 0 评论 -
C++中求string类型字符串的长度的方法
在代码中经常会求字符串的有效长度,对char型字符串数组大家会用strlen来求它的有效长度,如何求string类型字符串的有效长度呢?这里有三种方法。(1)使用string的成员函数length();这里获取的即为字符串的有效长度。#define _CRT_SECURE_NO_WARNINGS#include "iostream"#include "string"using ...原创 2019-10-14 15:31:00 · 38331 阅读 · 1 评论 -
动态库导出类,并调用类函数
在对动态库中的类函数的调用,不能直接使用加载函数来调用,否则会出现LINK2019的错误,这里应该用类对象或者类指针来调用类函数。动态库代码(我这里使用的是WIN32):.hEXTERN_C class CLASSDLL_API Fun{public: int add(int a, int b);};EXTERN_C CLASSDLL_API int m_add(int...原创 2019-09-17 10:44:03 · 1879 阅读 · 1 评论 -
MFC中使用def文件导出动态库的方法
首先创建一个动态库(dll)。首先是.h文件int _stdcall add(int a, int b);因为我们要使用def文件导出动态库,所以这里就不用_declspec(dllexport)来导出了。.cpp文件int _stdcall add(int a, int b){ return a + b;}.def文件LIBRARY "Fi...原创 2019-09-17 09:47:15 · 841 阅读 · 0 评论