C++/C
chenxiaohua
闲暇之余,喜欢爬山,游泳,和朋友聊天.
写程序,找回成就感.
展开
-
2019常州市程序设计小能手题目-投篮
题目描述小 X 凭借出色的棋艺被聘请为少年宫的中国象棋老师。少年宫改造以后所有的设施都焕然一新,象棋教室已不再使用传统的木制棋子和棋盘了,小朋友们所有的操作都是在电脑上进行的,如猜先、对弈、复盘、计算积分等,这给老师的备课带来了极大的挑战,因为除了正常的棋艺教学,还要开发各种应用程序来辅助教学。众所周知任何棋类运动开局前都要猜先,如围棋项目猜先仪式是由上手抓起一把围棋子让对手猜单双,猜中先行。而象棋则是甲、乙两人同时从各自的棋盒中摸出一枚棋子比大小,连续比三次,获胜次数多的一方执红先行,另一方则执黑后原创 2020-12-07 10:31:44 · 2253 阅读 · 0 评论 -
2019常州市程序设计小能手题目-猜先
小 X 凭借出色的棋艺被聘请为少年宫的中国象棋老师。少年宫改造以后所有的设施都焕然一新,象棋教室已不再使用传统的木制棋子和棋盘了,小朋友们所有的操作都是在电脑上进行的,如猜先、对弈、复盘、计算积分等,这给老师的备课带来了极大的挑战,因为除了正常的棋艺教学,还要开发各种应用程序来辅助教学。众所周知任何棋类运动开局前都要猜先,如围棋项目猜先仪式是由上手抓起一把围棋子让对手猜单双,猜中先行。而象棋则是甲、乙两人同时从各自的棋盒中摸出一枚棋子比大小,连续比三次,获胜次数多的一方执红先行,另一方则执黑后行。因现在所原创 2020-12-07 10:10:34 · 2114 阅读 · 0 评论 -
DES算法
概述美国国家标准局1973年开始研究除国防部外的其它部门的计算机系统的数据加密标准,于1973年5月15日和1974年8月27日先后两次向公众发出了征求加密算法的公告。加密算法要达到的目的(通常称为DES 密码算法要求)主要为以下四点: ☆提供高质量的数据保护,防止数据未经授权的泄露和未被察觉的修改; ☆具有相当高的复杂性,使得破译的开销超原创 2009-04-16 16:35:00 · 2600 阅读 · 0 评论 -
写Makefile(一)
概述要在unix/linux上开发应用程序,会写Makefile是必须要掌握的技能。就像你用vc写开发程序,如果你不会用vc这个工具,就没法开发。其实Makefile也是利用一些c/c++编译器命令的组合,Makefile只把这些命令组合起来,提供一个这些命令的规则、执行顺序。 示例我现在有一个c程序main.cpp,代码如下:#include "stdio.h"int main原创 2009-04-28 15:00:00 · 1443 阅读 · 0 评论 -
写Makefile(二)
在写Makefile(一)中,提供了一个简单的书写Makefile的例子,这个例子再简单不过了。后面我们将继续提供一个稍微复杂的例子。 现在源文件有三个,main.cpp,tdes.cpp和tdes.h,Makefile内容如下:CC=aCCDEFS=-AA -gINCLUDES= -I. LIBS=TARGET=mainDEFINES= $(DEFS)原创 2009-04-28 16:46:00 · 1291 阅读 · 0 评论 -
写Makefile(三)
前面写了“写Makefile(二)”,现在对前面的Makefile作一个改进。 现在源文件有三个,分别是:main.cpp,tdes.c和tdes.h,Makefile内容如下:CC=aCCDEFS=-AA -gINCLUDES= -I. LINKFLAGS=$(DEFS)LIBS=TARGET=mainDEFINES= $(DEFS) $(INCLUDES)原创 2009-04-28 17:20:00 · 1535 阅读 · 0 评论 -
tinyxml开发入门
概述tinyxml和xercesc一样,提供了完整的dom操作api。tinyxml相对比较简单好用,编译连接也不容易出问题。xercesc比较麻烦,非常完整庞大,编译有点麻烦,有内存泄漏。我认为在一般需求完全可以使用tinyxml。tinyxml官方网站http://www.grinninglizard.com/tinyxml/index.html可以在http://sourceforge.原创 2009-05-08 16:50:00 · 4039 阅读 · 0 评论 -
linux下tinyxml开发入门
从http://ncu.dl.sourceforge.net/sourceforge/tinyxml/tinyxml_2_4_0.tar.gz下载tinyxml,可以根据自己的需要,选择不同的版本。将tinyxml_2_4_0.tar.gz上传到主机,然后解压执行如下命令: tar -xzvf tinyxml_2_4_0.tar.gz 成功之后,会在当前目录出现一个tinyxml目录,原创 2009-06-16 09:17:00 · 11164 阅读 · 4 评论 -
解决xml解析中报文格式和encoding不一致的解析错误
1.错误现象我遇到过这样的xml文件,用c++解析的时候,报如下的错误:Fatal Error at file "d:/test2.xml", line 1, column 40 Message: An exception occurred! Type:UTFDataFormatException, Message:invalid byte 2 (? of a 2-byte seque原创 2009-07-03 21:04:00 · 27406 阅读 · 0 评论 -
unix下fifo编程实践
fifo是一个先进先出队列,需要用mkfifo函数创建一个文件,服务端和客户端分别用读写打开这个文件,然后服务端用文件描述符写数据,客户端用文件描述符读数据。其实就是两个程序同事打开一个文件,一个往文件写,一个从文件读。示例一:#include #include原创 2010-01-22 21:27:00 · 2767 阅读 · 0 评论 -
base64的C++实现
概述base64可以将不可显示的编码转换成可显示的编码,以便于存储。比如http一般传输的是文本格式的报文,如果要传输图片,那么就要先将图片编码成base64的报文传输,然后在客客户端显示的时候,将base64的报文解密,转换成二进制的图片数据显示。下面给出源代码,可以直接在linux,msvc环境下进行编译。代码Base64.h代码如下:/*** (C) Copyright 200原创 2009-04-16 16:24:00 · 18046 阅读 · 10 评论 -
xerces-c开发中,汉字编码验证准确性
经常有朋友用xerces-c开发程序,生成了gbk,或者gb2312编码格式的xml报文,汉字被编码为如下的样子,文件名test.xml: 125829999 Å©Õþͨ 1258299993100001 13777451607 01 20090101 怎样来原创 2008-12-04 15:13:00 · 1270 阅读 · 0 评论 -
linux安装xml开发包xerces-c
xerces介绍Xerces-C++ 的前身是 IBM 的 XML4C 项目。XML4C 和 XML4J 是两个并列的项目,而 XML4J 是 Xerces-J——Java 实现——的前身。IBM 将这两个项目的源代码让与 Apache 软件基金会(Apache Software Foundation),他们将其分别改名为 Xerces-C++ 和 Xerces-J。这两个项目是 Ap原创 2008-01-22 14:07:00 · 16459 阅读 · 4 评论 -
RC4加密算法在C++中的实现
在一些场合,常需要用到一些简单的加密算法,这里的RC4就可以说是最简单的一种。只要设置一个足够强的密码,就可以适用于一些非常简单的场合了。我是用来加密HTTP传送的数据的。RC4函数(加密/解密) 其实,RC4只有加密,将密文再加密一次,就是解密了。GetKey函数 随机字符串产生器,呵呵,为了方便,大多数加密算法都有一个随机密码产生器,我也就附带一个了。ByteToHex函原创 2008-02-14 16:12:00 · 15898 阅读 · 4 评论 -
c++函数重载二义性
例一:#include void f(int a);void f(long a);void f(char a);int main(int argc,char *argv[]) { double value = 65.01; f(value); return 0; }void f(int a){ printf("int value=%d/n", a);}void f(long a){ p原创 2008-02-28 16:50:00 · 4656 阅读 · 1 评论 -
c/c++经典积累
用C实现自己的memcpy先后给出一段代码 #include #include using namespace std;void* mymemcpy( void *dest, const void *src, size_t count ){ char* pdest = static_cast(dest); const char* psrc = static_cast( sr原创 2008-03-20 15:50:00 · 1015 阅读 · 0 评论 -
Yacc 与 Lex 快速入门
Lex 代表 Lexical Analyzar。Yacc 代表 Yet Another Compiler Compiler。 让我们从 Lex 开始吧。LexLex 是一种生成扫描器的工具。扫描器是一种识别文本中的词汇模式的程序。这些词汇模式(或者常规表达式)在一种特殊的句子结构中定义,这个我们一会儿就要讨论。一种匹配的常规表达式可能会包含相关的动作。这一动作可能还包括返回一个标原创 2008-01-11 00:35:00 · 734 阅读 · 0 评论 -
使用 lex 和 yacc 编译代码,第 1 部分:介绍
大部分人永远不需要知道 lex 和 yacc 可以做什么。为了编译下载的一些东西,您有时候会需要安装它们,但是,在大部分情况下,其使用非常简单。或许偶而有 README 文件会提及“移位/归约(shift/reduce)”冲突。无论如何,这些工具仍是 Unix 工具箱颇有价值的一部分,对它们稍做了解会大有帮助。 实际上,尽管 lex 和 yacc 几乎总是被同时提到,但是它们可以单独使用。有很转载 2008-01-11 03:27:00 · 1150 阅读 · 0 评论 -
理解va_list、va_start、va_arg、va_end原理及使用方法
概述由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论. 定义大家先看几宏.在VC++6.0的include有一个stdarg.h头文件,有如下几个宏定义:#define _INTSIZEOF(n) ((size原创 2008-01-12 15:33:00 · 3350 阅读 · 0 评论 -
sscanf 函数用法
函数功能sscanf() - 从一个字符串中读进与指定格式相符的数据.定义int sscanf( string str, string fmt, mixed var1, mixed var2 ... );说明:sscanf与scanf类似,都是用于输入的,只是后者以屏幕(stdin)为输入源,前者以固定字符串为输入源。其中的format可以是一个或多个 {%[*原创 2008-01-13 15:29:00 · 877 阅读 · 0 评论 -
lex bison
还是人家的例子,自己亲手输入,虽然这样麻烦了不少,但是一字一句的输入对建立一个编译器的过程有了最为生动的理解。我们的目标就是建立一个这样的程序,可以运行如下的代码:a = 1;b = 6 - 2 * (3 - 1);if(a > b){ print a;}else{ print b;}// 斐波那契数列c = 1;d = 1;e = 1;while(a f = d; //临时变量 d转载 2008-01-13 23:04:00 · 1986 阅读 · 0 评论 -
windows下yacc和lex开发环境配置(Parser Generator篇)
下载安装Parser Generator是Windows下YACC和LEX的实现,是由英国Bumble-Bee Software公司开发.下载地址http://www.bumblebeesoftware.com/downloads.htm.安装软件之后,设置系统环境变量path,在path属性中添加安装bin目录;以我的安装为例,在以前的path属性后添加;D:/Program Files/P原创 2008-01-16 00:30:00 · 4259 阅读 · 2 评论 -
curses编程(一)初识
curses 的历史与版本: cureses 最早是由柏克莱大学的 Bill Joy 及 Ken Arnold 所发展出来的. 当时发展此一函式库主要原因是为了提高程式对不同终端机的相容性而设计的. 因此, 利用 curses 发展出来的程式将和您所使用的终端机无关. 也就是说, 您不必担心您的程式因为换了一部终端机而无法使用. 这对程式设计师而言, 尤其是网路上程式的撰写, 是件相当原创 2008-02-16 12:50:00 · 7272 阅读 · 0 评论