C语言
_acme_
这个作者很懒,什么都没留下…
展开
-
C语言的指针大小问题
一说到指针的大小很多人都会想到int型,char型,double型,然后觉得不同类型的指针所占内存大小不同,其实这是一种误区. 因为指针其实就是一个无符号整形,一个整数而已,它的大小取决于你的系统是16 32 还是64位的 16/8=2byte 32/8=4byte 64/8=8byte . 但是你会问为什么我的系统是64位的,但是我的指针却是32位的4字节指针.这个也很简单解释原创 2016-01-17 16:28:06 · 6607 阅读 · 1 评论 -
C语言宽字符输出和转换
在locale.h头文件中有个setlocale函数,它的作用是设置运行时的字符集环境。一般C/C++编译器默认字符集环境为”C”,所以你要正常输出单个中文字符,或者用mbstowcs、wcstombs等C库函数的时候,需要设置字符集环境为中文。 setlocale函数的原型如下:char *setlocale( int category, const char *lo原创 2017-03-05 22:31:23 · 5615 阅读 · 0 评论 -
C语言查询数据库返回结果中文乱码
1.数据库字符集如图 2.程序运行如图 3.在mysql_init下面加上一行代码mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");运行结果如图: 这下子就不会出现乱码了。我经过很多次实验发现,不管你项目字符集如何,还有第一个图片所示的字符集如何,只要加上那一行代码就不会乱码了。设置数据库字符集可以用这条语句set character_s原创 2016-08-18 13:06:32 · 3923 阅读 · 2 评论 -
C语言连接MySQL数据库实例
为了突出整个连接,查询数据库的流程,这里就不做函数返回值的判断了。详细的API参数信息可以去查MYSQL的官方手册。代码如下:#include <stdio.h>#include "mysql.h"int main(void){ MYSQL mysql; //一个数据库结构体 MYSQL_RES* res; //一个结果集结构体 MYSQL_ROW row; //原创 2016-08-18 12:47:19 · 12354 阅读 · 0 评论 -
C语言如何连接MySQL数据库
这里用mysql自带的API连接会简单一点。那么我们就需要把mysql的头文件和库包含进项目中。以下配置都是在VS2015进行的。一.在项目属性中配置1.打开mysql的安装路径,找到include文件夹和lib文件夹 如图: 2.打开项目 –> 属性 –>VC++目录 如图: 把include和lib分别添加到包含目录和库目录即可3.打开项目 –> 属性 –> 链接器 –原创 2016-08-18 12:36:01 · 11651 阅读 · 2 评论 -
Win10如何安装VC6
这里我们不真的运行setup安装VC6,因为在win10安装程序有很大的概率会被卡住,就算安装成功也是各种问题,包括你设置了兼容性。这里有一个不用安装也能直接运行的办法,并且可以支持C++的头文件.这个方法适用win7以上的系统.先附上VC6安装包和include头文件包 链接:http://pan.baidu.com/s/1dF8xrTv 密码:f4mu1.把压缩包解压到某盘,不用装在C盘 2原创 2016-07-27 16:17:01 · 25708 阅读 · 7 评论 -
解决读取文件乱码问题
一般在windows上的txt文本文件要么以ANSI编码要么以Unicode编码,而用C ,C++,MFC编写的程序一般人只会处理一种编码格式的文本,因为不懂怎么判断读取的文件是以哪种编码格式存储的。那么重点就是判断读取的文件是以哪种方式存储的!有两种方式解决。一.用二进制方式打开文件,前两个字节为FFFE就是Unicode文件,ANSI则无格式定义. 如图: 这是以16进制打开Unicode文原创 2016-06-24 15:08:31 · 20236 阅读 · 3 评论 -
如何将十六进制转换为、二进制、八进制、十进制
1.十六进制 –> 二进制void HexToBin(char* hex, char* bin, int n = 20){ char a[17][6] = { "0000 ","0001 ","0010 ","0011 ", "0100 ","0101 ","0110 ","0111 ", "1000 ","1001 ","1010 ","1原创 2016-04-24 15:10:06 · 1918 阅读 · 0 评论 -
如何将十进制转换为二进制、八进制、十六进制
三个的方法都一样,就是求余,不过最后要记得把数组反转过来。1.十进制 –> 二进制void DecToBin(long long dec, char* bin){ int i = 0, j = 0, k = 0, space = 0; char a[3] = "01"; char temp[100] = " "; do { temp[i++]原创 2016-04-24 14:58:57 · 1012 阅读 · 0 评论 -
如何将八进制转换为二进制、十进制、十六进制
1.八进制 –> 二进制 我这里采用了一种简单又高效的办法. 先把000 - 111 的二进制用二维数组存起来. 例如:八进制25–> 5对应101 2对应010 这时候只要把八进制分解为一位一位的,然后在数组中找对应的二进制即可,无论多大的八进制数,都可以很快的分解并找到对应的二进制数. char a[9][5] = { "000 ","001 ","010 ","011 ","100原创 2016-04-24 14:47:16 · 3412 阅读 · 0 评论 -
如何将二进制转换为八进制、十进制、十六进制
值得注意的是,存放二进制的数组最后一位才是二进制的第一位,例如:char bin[5]=”1100”,那么bin[3] 才是二进制的第一位.1.二进制–>八进制 二进制转换为八进制是非常简单的,因为每三个二进制就是一位八进制.如果不足三位二进制则补0. 例如: 10101 –>010 101 –>25 1101 –> 001 101 –> 15 思路有了,接下来就是把思路转原创 2016-04-24 14:28:04 · 3102 阅读 · 0 评论 -
C语言职工管理系统设计
代码如下:#include<stdio.h>#include<stdlib.h>#include <string.h>struct Worker{ int id;//工号 char name[16];//姓名 char sex[8];//性别 int age;//年龄 char edu_exp[32];//学历 int wage;//工资原创 2016-04-13 11:30:40 · 1365 阅读 · 0 评论 -
通过ntdll.dll的函数枚举进程
C语言代码如下:#include <windows.h>#include <stdio.h>#include <stdlib.h>#include <NTSecAPI.h>//定义一个函数指针用来访问ntdll.dll中的ZwQuerySystemInformation函数typedef DWORD(WINAPI *ZWQUERYSYSTEMINFORMATION)(DWORD, PVOI原创 2016-04-02 14:38:56 · 1098 阅读 · 0 评论 -
冒泡排序算法详解
冒泡排序是我们平时生活中常用的,就是挨个比大小,所以相对其它算法比较好理解.冒泡排序就是小的往上冒或者大的往上冒,自己画个图就能明白了. 步骤如下:(假设从小到大排序) 1.iNum[n]是待排序的数组(3 2 4 1 5) 2.从第一个iNum[0]=3开始比,找比第一个小的,交换两者的值iNum[0]=2,(值得注意的是很多人会直接让小的赋值给大的,这样会直接覆盖掉原来的值,所以记得设置临原创 2016-01-23 17:39:05 · 702 阅读 · 0 评论 -
C/C++面试知识点总结(一)
目录: 一、基础知识 1.C/C++基础 2.STL基础3.数据结构与算法基础 4.计算机网络基础5.操作系统基础6.数据库基础二、深入底层原理1.STL各种容器的底层实现2.各种经典树的原理以及实现 3.计算机网络深入4.操作系统深入5.数据库深入三、项目经历 1.纯属个人YY一、基础知识 1.C/原创 2017-08-10 23:44:34 · 40735 阅读 · 9 评论