Welcome 微信登录

首页 / 软件开发 / C语言

C语言控制台窗口图形界面编程之五 控制文本移动的函数

C语言控制台窗口图形界面编程之五 控制文本移动的函数

C语言控制台窗口图形界面编程之五 控制文本移动的函数2015-01-16控制文本的移动是控制台窗口界面编程的一个很重要的功能,有了这个功能我们可以实现界面的滚动。下面我们介绍一个控制文本移动的函数,如下:BOOL ScrollConsoleScreenBuffer( //文本移动函数HANDLE hConsoleOutput,//句柄const SMALL_RECT *lpScrollRectangle,//移动区域const SMALL_RECT *lp...
C语言控制台窗口图形界面编程之六 光标操作

C语言控制台窗口图形界面编程之六 光标操作

C语言控制台窗口图形界面编程之六 光标操作2015-01-16控制台窗口的光标的位置反映的是当前文本输入的插入位置,通过Windows API函数我们可以随意更改光标的位置,下面介绍这个控制光标位置的API函BOOL SetConsoleCursorPosition(//设置光标位置HANDLE hConsoleOutput,//句柄COORD dwCursorPosition//坐标);//若函数调用成功则返回非0值不仅仅是光标的位置,光标的信息我们也可...
C语言控制台窗口图形界面编程之七 键盘事件

C语言控制台窗口图形界面编程之七 键盘事件

C语言控制台窗口图形界面编程之七 键盘事件2015-01-16输入事件中的键盘事件通常有字符事件和按键事件,这些事件的附带信息构成了键盘输入的信息,而想要读取这些信息,是要通过API函数ReadConsoleInput来获取的,函数原型如下:BOOL ReadConsoleInput(//读取输入信息HANDLE hConsoleInput, //句柄PINPUT_RECORD lpBuffer, //输入事件结构体的指针DWORD nLength,//要...
C语言控制台窗口图形界面编程之八 鼠标事件

C语言控制台窗口图形界面编程之八 鼠标事件

C语言控制台窗口图形界面编程之八 鼠标事件2015-01-16上次讲的是键盘事件,这次我们介绍鼠标事件。下面先介绍下鼠标事件的结构体以及相关信息。typedef struct _MOUSE_EVENT_RECORD//鼠标事件结构体{COORD dwMousePosition;//当前鼠标在控制台窗口缓冲区的位置DWORD dwButtonState;//鼠标按键的状态DWORD dwControlKeyState;//控制键状态DWORD dwEvent...
如何使用C创建php扩展

如何使用C创建php扩展

如何使用C创建php扩展2015-01-16使用C创建php扩展优点:1.提高运行效率。2.降低php复杂度,可以直接调用扩展方法实现功能。3.方便与第三方库交互。缺点:1.开发比php复杂。2.可维护性降低。3.开发周期变长。php开发,发现问题后,只要修复问题,即可见到效果。如果使用扩展,修复后需要重新编译,重启服务,才能见到效果。首先,假定需要实现一个方法:将url字符串转换成超链接。php实现方法:<?phpfunction strtolin...
C语言递归实现汉诺塔算法

C语言递归实现汉诺塔算法

C语言递归实现汉诺塔算法2015-01-20汉诺塔的递归实现算法,将A中的圆盘借助B圆盘完全移动到C圆盘上,每次只能移动一个圆盘,并且每次移动时大盘不能放在小盘上面递归函数的伪算法为如下:if(n == 1)直接将A柱子上的圆盘从A移动到Celse先将A柱子上的n-1个圆盘借助C柱子移动到B柱子上直接将A柱子上的第n个圆盘移动到C柱子上最后将B柱子上的n-1个圆盘借助A柱子移动到C柱子上该递归算法的时间复杂度为O(2的n次方),当有n个圆盘时,需要移动圆盘...
C语言中程序时序问题的排查过程

C语言中程序时序问题的排查过程

C语言中程序时序问题的排查过程2015-01-20对于由多个模块协同工作的软件来说,程序处理的时序是非常重要的。当消息处理的顺序出现混乱时,程序就会出现异常。本文基于作者的实际项目经验,对软件模块之间的时序问题进行了详细的分析,为相关软件问题的分析及解决提供了有益的参考。一、问题描述在某软件版本中,有两个模块(模块A与模块B)之间要进行通信。通信链路建立起来之后,模块A向模块B发消息,消息中携带了用户号码及序列号。在消息发送成功之后,模块A按照序列号将用户...
C语言中结构体参数变量传递简介

C语言中结构体参数变量传递简介

C语言中结构体参数变量传递简介2015-01-20在C语言中,结构体参数变量经常作为函数的参数来进行传递。但如果参数设置不当,会出现内存问题。本文以实际的程序代码为例,详细地介绍如何正确地使用结构体参数变量,为相关的开发工作提供了参考。一、前言本文中的程序实现对员工信息结构体字段赋值并打印出来的功能。该结构体的定义如下:// 员工信息结构体typedef struct{ INT8 szEmployeeName[100]; // 员工姓名 UINT16iEm...
C语言中结构体(struct)的位字段(:) 详解

C语言中结构体(struct)的位字段(:) 详解

C语言中结构体(struct)的位字段(:) 详解2015-01-20结构体(struct)可以使用位字段(:), 节省空间, 如以下代码,结构体a中的, 第一个变量x占用1个字符, y占用2个字符, z占用33个字符(越界);但是sizeof()会自动补齐, 如x+y一共占用4个字节, z占用8个字节, 所以结构体占用12个字节;当使用加法运算时, 会初始化为0;代码:/** test.cpp**Created on: 2014.05.23*Author...
C语言中printf的占位符(%) 异常

C语言中printf的占位符(%) 异常

C语言中printf的占位符(%) 异常2015-01-20C语言中, 使用%代表占位符的意思, 如%d代表int类型, %f代表float类型.需要注意的是, 占位符需要和使用参数匹配, 否则会出现越界或截断的情况;如%f, 匹配5, 会导致使用8个字节去匹配4个字节, 会产生越界, 输出0;%d, 匹配5.01, 会导致使用4个字节去匹配8个字节, 会产生截断, 输出一个大数;代码:/** test.cpp**Created on: 2014.05.2...
c语言实现SHA-1算法

c语言实现SHA-1算法

c语言实现SHA-1算法2015-01-20安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产...
如何使用C语言获取文件的SHA1哈希值

如何使用C语言获取文件的SHA1哈希值

如何使用C语言获取文件的SHA1哈希值2015-01-20安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那...
Objective-C内存管理之引用计数

Objective-C内存管理之引用计数

Objective-C内存管理之引用计数2015-02-23初学者在学习Objective-c的时候,很容易在内存管理这一部分陷入混乱状态,很大一部分原因是没有弄清楚引用计数的原理,搞不明白对象的引用数量,这样就当然无法彻底释放对象的内存了,苹果官方文档在内存管理这一部分说的非常简单,只有三条准则:当你使用new、alloc或copy方法创建一个对象时,该对象的保留指针为1,当不再使用该对象的时候,你应该想该对象发送一条release或autoreleas...
C语言:指针的长度和类型

C语言:指针的长度和类型

C语言:指针的长度和类型2015-02-23如果考虑应用程序的兼容性和可移植性,指针的长度就是一个问题,在大部分现代平台上,数据指针的长度通常是一样的,与指针类型无关,尽管C标准没有规定所有类型指针的长度相同,但是通常实际情况就是这样。但是函数指针长度可能与数据指针的长度不同。指针的长度取决于使用的机器和编译器,例如:在现代windows上,指针是32位或是64位长测试代码:#include<stdio.h>#include<math.h...
<< 31 32 33 34 35 36 37 38 39 40 >>