习语言函数简明手册 1.0 

作者:微风、望舒儀和、黙黙地争第一  2010年8月

一、简介 2

二、习语言示例 2

三、习语言关键词 2

四、 习语言预处理命令 3

五、 习语言函数分类 3

六、 系统函数 3

(一)进程函数 3

(二)控制台函数 4

(三)时间日期函数 6

(四)数学函数 6

(五)调试函数 9

七、 文件操作函数 9

(一) 目录函数 9

(二)文件操作函数 11

(三)低级文件处理函数 11

(四)高级(流式)文件处理函数 13

八、 字符串处理函数 15

(一)国标GB18030函数 16

(二)国标转换函数 19

(三)转换函数 20

(四)字符串操作函数 21

(五)内存操作函数 23

(六)扩展函数定义 24

九、 图形函数 24

(一) 图形系统函数 24

(二) 图形属性操作 25

(三) 图形基础函数 27

(四) 画轮廓函数 27

(五) 画填充图形函数 28

(六) 文字输出函数 29

一、简介

   习语言,即中文化的C,为方便熟悉中文的人学习编程,减轻记忆而创作。为个人业余作品,尚处在不断完善中。

二、习语言示例

#包含 "习语言系统.接口"

主函数()

{

  输出字符串并换行("我也会编程啦,这是我的第一个程序!");

  暂停();  

}

三、习语言关键词

 (一)  类型

全称:  字符类型   短整数类型  整数类型  长整数类型 浮点数类型  双精度类型  小数类型

简称:  字符       短整数      整数      长整数     浮点数      双精度      小数 

全称:  枚举类型   结构类型    联合类型  无类型     自然数类型  字节类型  

简称:                                              自然数      字节

全称:  字类型    双字类型    字符串类型 变参类型   无参数      无返回值    汉字类型

  

 (二) 控制用保留词

  如果    或者     否则    步进循环   循环      重复     直到   当      分支    

  若等于  其他值   跳出    继续       跳转到    返回     开始   结束 

  

 (三) 变量修饰保留词

  外部的   静态的   无符号   易变的   只读的   寄存器变量   常量   本地的 

 (四)  运算符保留词

  类型长度 加 减 乘 除 模除加加减减赋值加等减等乘等除等模等,

  等于不等于大于小于大于等于小于等于左移,  右移,  并且,  ,  ,  

  位与位或位非异或,  指向的

   

  (五) 其他保留词

  类型定义   习调用  标准调用   真  假 

四、习语言预处理命令 

(一)习语言支持的预定义宏:

 __变参__     __文件名__   ____    __日期__   __时间__

(二)预处理命令:

1. #包含   

2. #定义  

3. #取消定义 

4. #如果 

5. #或者 

6. #否则 

7. #如果结束 

8. #如果已定义  

9. #如果未定义 

10. #错误 

预处理命令 #如果 和 #或者 后要使用逻辑表达式,表达式中可以实用习语言支持的逻辑算术运算符和 函数: 已定义(...

函数: 已定义(...) 括号中只能是一个宏名, 此函数功能用来判断 一个宏是否定义。

五、习语言函数分类

 习语言函数可分为:系统函数、文件操作函数、字符串处理函数、图形函数、视窗函数等。

六、 系统函数

习语言系统函数在接口目录下的“习语言系统.接口”文件中声明,包含此接口文件即可直接使用系统函数。

(一)进程函数

1、整数类型    执行程序(  只读串类型 可执行文件名,整数类型 搜索方式, 只读串类型 参数[], 只读串类型 环境变量[] );

解释:

 当搜索方式=宏_进程_搜索时,函数可以利用PATH环境变量查找可执行文件。 =宏_进程不搜索 : 不使用

  环境变量 = 空指针时,启动的子进程使用当前程序的环境。 否则:改变子进程的环境

  环境变量中的每一项是一个字符串,形式如:“变量名=值”

  参数表的第一个参数必须为“可执行文件名”, 参数表和环境变量的最后一个参数必须为“空指针”,标志结束

  执行成功,则不返回,当前进程被终止,内存空间被新进程占用,打开的文件保持打开,开始新进程,否则返回 错误码。

2..整数类型    运行程序(整数类型 模式,只读串类型 可执行文件名整数类型 搜索方式,只读串类型 参数[],只读串类型 环境变量[] );

解释:模式:为运行模式,取值  宏_进程等待   表示在子程序运行完后返回本程序(同步执行)

                          宏_进程并发   表示在子程序运行时同时运行本程序(异步执行)

                     宏_进程覆盖    表示在退出本程序运行子程序,效果同 “ 执行程序”

                     宏_进程后台运行   表示子程序在后台执行,不使用键盘和控制台

 其他参数同 “ 执行程序” 的说明

 从同步执行模式返回的是子程序的退出码,从异步执行模式返回的是子进程的句柄      

3.整数类型    外部命令字符串类型 命令串);  

解释: 暂停当前程序的运行, 执行命令串, 返回外部命令运行结果。

4.无类型      退出(整数类型 状态);  

解释: 终止当前程序, 同 执行 返回 语句。 同c: exit()

(二)控制台函数

1、整数类型    获取按键(无类型 );

2、整数类型    获取按键并显示(无类型 );

3、整数类型    有按键吗(无类型 );  

解释:   返回 0: 没有, 否则 : 有 。  等同标准C的kbhit()

4、整数类型    回置按键整数类型 键码 );

解释:将按键回送会键盘缓冲区, 最大可回置255个按键,  返回 -1 表示已满,不能再回指按键.否则返回 回置的键码

5、整数类型    输出字符字节类型 字符码 );  

解释:输出单字节字符。成功 返回 字符, 失败 返回 -1

6、整数类型    输出字汉字类型 汉字 );      

解释:输出单字节字符或多字节汉字。成功 返回 输出字节数, 失败 返回 -1 即宏_文件结束

7、整数类型    输出字符串字符串类型 字符串 );

解释:输出字符串, 成功 返回 大于等于 0 , 失败返回 宏_文件结束  可以使用 %行 做换行

8、整数类型    输出字符串并换行字符串类型 字符串 );

解释:输出字符串后换行

9、整数类型    换行输出字符串字符串类型 字符串 );

解释:先换行再输出字符串

10、整数类型    输入字符  无参数 );  

解释:输入一个单字节字符, 出错 返回 -1 即 宏_文件结束

11、汉字类型    输入字  无参数 );    

解释:输入一个单字节字符或汉字, 出错返回 0xFFFFFFFF (宏_文件结束)

12、整数类型    输入字符串字符串类型 缓冲区整数类型 最大输入个数  );

解释:返回输入个数,最大为“缓冲区大小-1”,碰到"回车"返回,  输入串以0结束.

13、整数类型    格式输出  只读的 字符串类型 格式, ... );

 解释:格式字符串最大500字节长, 格式中普通字符按原样输出, %():为指令, %%输出百分号

   指令有: %(整数) %(自然数) %(十六) %(拾陆) %(八) %(小数)  %(双精度) %(串) %(字符) %(科学) %(换行) 

   另一种指令形式是: %整 %自 %六 %陆 %八 %小 %双 %串 %字 %科 %行 

14、整数类型    习格式输出只读的 字符串类型 格式, ... );

解释: 等同C语言的 printf函数 

15、整数类型    格式化  字符类型 *缓冲区, 只读的 字符串类型 格式, ... );

解释: 格式字符串最大500字节长, 格式中普通字符按原样输出, %():为指令, %%输出百分号

   指令有: %(整数) %(自然数) %(十六) %(拾陆) %(八) %(小数)  %(双精度) %(串) %(字符) %(科学) %(换行) 

   另一种指令形式是: %整 %自 %六 %陆 %八 %小 %双 %串 %字 %科 %行 

16、整数类型    习格式化字符类型 *缓冲区, 只读的 字符串类型 格式, ... );

解释: 等同C语言的 sprintf函数 返回存储到缓冲区中的字节数 

17、整数类型 习调用  格式输入只读的 字符串类型 格式,    ...   );

解释: 从标准输入根据格式输入变量 , 返回输入的变量个数 , 输入时,格式定义要和欲输入的数据类型严格相同,格式控制字符见 格式输出 函数

18、整数类型 习调用  习格式输入只读的 字符串类型 格式,    ...   );

解释: 用C语言scanf相同方法 从标准输入根据格式输入变量 , 返回输入的变量个数 , 输入时,格式定义要和欲输入的数据类型严格相同

19、整数类型 习调用  字符串格式输入只读的 字符串类型 字符串,  只读的 字符串类型 格式,    ...    );

解释: 从字符串根据格式输入变量 , 返回输入的变量个数

20、整数类型 习调用  习字符串格式输入只读的 字符串类型 字符串,  只读的 字符串类型 格式,    ...    );

解释: 用C语言相同方法 从字符串根据格式输入变量 , 返回输入的变量个数 sscanf();

21、整数类型    输入整数无参数 );

22、双精度类型  输入浮点数无参数 );

23、整数类型    输出整数整数类型 整数值 整数类型 进制);

24、整数类型    输出自然数自然数类型 整数值 整数类型 进制);

25、整数类型    输出浮点数双精度类型 浮点值 );

26、整数类型    有效位输出浮点数双精度类型 浮点值整数类型 有效位 );

(三)时间日期函数

1、日期时间类型 格林威治时间时间类型 *时间 );  

解释:本函数把'时间'所指的时间转换成格林威治时间,并以日期时间结构形式返回

2、日期时间类型 当地时间时间类型 *时间 );      

解释:本函数把'时间'所指的时间转换成当地标准时间,并以日期时间结构形式返回

3、字符类型   *   日期时间转字符串日期时间类型 *日期);

解释:将日期时间类型表示的日期转换为字符串

4、字符类型   *   时间转字符串时间类型 *时间);   

解释:将时间类型表示的日期转换为字符串

5、时间类型       当前时间无参数 );              

解释:返回 自从1970年1月1日0点开始到目前流逝的秒数

(四)数学函数

1、 绝对值实数值 

2、 无类型       浮点运算初始化无类型 );  

解释: 重新初使化浮点数学程序包

3、双精度类型   复数绝对值(复数类型 复数) ;   

解释:  返回复数的绝对值

4、双精度类型    指数运算(双精度类型 指数) ;  

解释: 该值指定 e(自然对数的底)的幂。

如果‘指数’值大于 709.782712893,就会发生错误。常量 e 约为 2.718282。

注释‘ 指数运算’函数补充了‘对数’函数的作用,有时将它称为反对数。

5、双精度类型    次方运算(双精度类型 x,双精度类型 y) ; 

解释:      返回x的y次方的值

6、双精度类型    对数运算(双精度类型 实数) ;  

解释: 自然对数运算 e(自然对数的底)。

7、双精度类型    对数运算10(双精度类型 实数) ;  

解释: 以十为底对数运算 e(自然对数的底)。

8、双精度类型    开方运算(双精度类型 x) ;  

解释:返回x的开方

9、双精度类型   反余弦(双精度类型 弧度) ;      

解释: 返回x的反余弦cos-1(x)值,x为弧度

10、双精度类型   反正弦(双精度类型 弧度) ;   

解释: 返回x的反正弦sin-1(x)值,x为弧度

11、双精度类型   反正切(双精度类型 x) ;        

解释: 返回x的反正切tan-1(x)值,x为弧度

12、双精度类型   反正切2(双精度类型 分子,双精度类型 分母);  

解释:   返回y/x的反正切tan-1(x)值,y和x为弧度

13、双精度类型   余弦(双精度类型 弧度) ;  

解释:              返回x的余弦cos(x)值,x为弧度

14、双精度类型   正弦(双精度类型 x) ;     

解释:           返回x的正弦sin(x)值,x为弧度

15、双精度类型   正切(双精度类型 x);     

解释:            返回x的正切tan(x)值,x为弧度

16、双精度类型   双曲余弦(双精度类型 x) ;     

解释:           返回x的双曲余弦cosh(x)值,x为弧度

17、双精度类型   双曲正弦(双精度类型 x)  ;    

解释:           返回x的双曲正弦sinh(x)值,x为弧度

18、双精度类型   双曲正切(双精度类型 x) ;    

解释:            返回x的双曲正切tanh(x)值,x为弧度

19、双精度类型   求直角斜边长(双精度类型 x,双精度类型 y);  

解释:      返回直角三角形斜边的长度(z), x和y为直角边的长度,z2=x2+y2

20、双精度类型   向上求整(双精度类型 x)  ;    

解释:           返回不小于x的最小整数  (>= x 的整数)

21、双精度类型   向下求整(双精度类型 x) ;    

解释:            返回不大于x的最大整数  ( <=x 的整数 )

22、无类型       初始化随机数整数类型 数值 ) ; 

解释:  初始化随机数发生器, 用1恢复到始终相同的初始状态, 其他值将初始态设置为一个随机值。

23、整数类型     取随机数(无类型) ;      

解释: 产生一个随机数并返回这个数 , 随机数位于 0 和 宏_最大随机数 之间。

24、双精度类型   浮点数分解(双精度类型 双精度数双精度类型 *整数指针);    

解释: 将双精度数value分解成尾数和阶

25、双精度类型   浮点数模除(双精度类型 x,双精度类型 y);  

解释:      返回x/y的余数

26、双精度类型   求尾数和阶(双精度类型 双精度数, 整数类型 *阶指针) ;  

解释:将双精度数分成尾数和阶, 返回尾数  双精度数分解为 尾数*2阶(次方)

27、双精度类型   尾数阶运算(双精度类型 尾数整数类型 阶);  

解释: 返回  尾数*2阶(次方) 的值。

28、交换类型,甲, 乙  

解释:对指定类型 数据进行交换

(五)调试函数

1、无类型     暂停(无类型);

解释:暂停系统运行, 按任意键继续

2、整数类型   设置调试级别整数类型 级别 );

解释:设置调试级别, 级别取值:0-7 ,返回旧调试级别, 输入级别大于7时复位当前调试级别为缺省状态,小于0则为读取当前调试级别,

 缺省调试级别为宏_错误, 设置调试级别后大于调试级别的调试信息不输出

3、整数类型   设置调试类别整数类型 类别,整数类型 开闭 );

解释: 输入类别0-28,开关=1 或'开' 则打开, =0或'关' 则关闭, 返回设置后的调试类别开关状态, 大于28 为读取当前调试类别状态 , 类别0缺省为打开状态

4、无返回值   设置调试标志串字符类型 标志串 )

解释:设置调试信息输出时附带的调试标志串

5、字符类型 读取调试标志串(无参数 )

6、整数类型  调试输出(整数 类别,整数 级别, 只读的 字符串类型 格式, ... );

解释: 用指定的调试类别和调试级别输出调试信息, 类别为0-28, 级别为0-7, 只有对应调试类别为打开状态 且 级别 小于等于 系统调试级别的才输出

指定类别级别允许输出, 返回 1, 不允许输出则 返回 0   参数格式同格式输出

7、无类型     调试断点开关整数类型 开关  );      

解释:打开或关闭调试断点, 1 或'开' 为开, 0, 或'关' 为关

8、无类型     调试断点字符 文件名, 整数 行  )

解释:暂停程序的执行,输出文件名,行信息,任意键继续

七、 文件操作函数

习语言文件操作函数在接口目录下的“习语言文件.接口”文件中声明,包含此接口文件即可直接使用文件操作函数。

(一) 目录函数

1、整形类型     设置当前工作目录(字符类型 *新目录);

解释:将当前工作目录设置为新目录,新目录必须实际存在,成功返回0,新目录不存在返回-1,新目录包含盘符则改变当前磁盘和当前工作目录,否则只改变当前工作目录

2、整形类型     设置缺省磁盘(整数类型 磁盘号码);

解释:磁盘号码:1:A 2:B 3:C ....  成功执行返回 “成功”

3、字符串类型   获取当前工作路径(整数类型 磁盘号码,字符串类型 路径缓冲区,整数类型 缓冲区长度);

解释:磁盘号码:0:缺省磁盘  1:A 2:B 3:C ....  成功执行返回 路径缓冲区,否则“空指针”, 路径缓冲区为空指针时自动分配内存,返回,后期须释放。

4、整形类型     获取缺省磁盘(无类型);

解释:返回缺省磁盘(当前工作磁盘)  1:A 2:B 3:C ....

5、双字类型     获取可用磁盘(无类型);

解释:返回用位标志的可用磁盘列表,位-  1:A 2:B 3:C ...., 失败返回 0

6、整数类型     创建目录(字符串类型 目录指针);

解释:成功返回“成功”

7、整数类型     删除目录(字符串类型 目录指针);

解释:成功返回“成功”

8、字符串类型   获取环境变量(字符串类型 环境变量名);

解释:成功返回 变量值,否则 空指针

9、整数类型    设置环境变量(字符串类型 环境变量表达式);

解释:环境变量表达式: 应为 "变量名=值" 形式.  成功返回 "成功"

10、无类型      用环境变量搜索文件(字符串类型 文件名,字符串类型 环境变量名字符串类型 路径缓冲区)  ;  

解释:现在当前工作目录查找文件,找不到则使用环境变量指明的路径查找,找到则将找到的路径复制到路径缓冲区中,路径缓冲区 应足够长, 至少应为:宏_最大路径长, 成功返回“成功”

11、整数类型     开始文件查找(字符串类型 路径名文件查找结果类型 *查找结果 );

解释:根据路径名如“*.wps”查找文件, 查找结果保存在查找结果里

返回"成功"表示找到文件, 返回第一个文件信息, 否则为失败

12、整数类型     继续文件查找(文件查找结果类型 *查找结果);

解释:返回"成功"表示找到文件, 返回文件信息, 否则为失败

取匹配finddirst的文件,成功返回0

13、整数类型     结束文件查找(文件查找结果类型 *查找结果);

解释:返回"成功"表示找到文件, 返回文件信息, 否则为失败

取匹配finddirst的文件,成功返回0

(二)文件操作函数

1、整数类型     重命名(字符串类型 原文件名字符串类型 新文件名 );   

解释:成功返回 "成功"

2、整数类型     检查属性(字符类型 *文件名,整数类型 属性 ) ;

解释:本函数检查文件属性, 属性取值为:06可以读、写  04可以读  02可以写  00文件存在   如果具有指定属性,返回0, 不存在或不具有指定属性返回 -1

3、整数类型     设置属性(字符类型 *文件名,整数类型 属性) ;

解释:本函数用于设定文件的属性  属性可以为以下值:文件属性_可写、文件属性_可读、文件属性_可读|文件属性_可写

(三)低级文件处理函数

1、整数类型 习调用  打开文件(只读的 字符类型 *文件名整数类型 模式, .../* [,整数类型 属性] */);

解释:函数:打开模式, 功能:为读或写打开一个文件,  模式取值见下表

   打开模式_只读      : 以只读方式打开

   打开模式_只写      : 以只写方式打开

   打开模式_读写      : 以可读可写方式打开

   打开模式_添加      : 每次写之前将文件指针移到文件末尾,只在尾部写入

   打开模式_创建      : 创建并打开文件, 可以和 打开模式_临时 一起使用 

   打开模式_重建      : 打开一个文件并清空  

   打开模式_缺失      : 和 打开模式_创建 一起使用,表示只有在文件缺失(不存在)才创建文件  

   打开模式_文本      : 文本模式打开,读的时候回车换行符转换为换行,写入时换行符转换为回车换行  

   打开模式_数据      : 以二进制数据模式打开, 不进行转换  

   打开模式_不继承    : 继承标志:子进程不继承此文件  

   打开模式_临时      : 临时文件标志:当最后一个句柄关闭时文件被删除  

   打开模式_短期      : 临时文件,尽量不使用缓存刷新  

   打开模式_顺序      : 文件主要以顺序方式存取  

   打开模式_随机      : 文件主要以随机方式存取  

   当模式为“打开模式_创建” 时使用,属性: 可取值:  文件属性_可写: 文件属性_可读  文件属性_可读|文件属性_可写 

   返回 文件句柄, 打开出错时返回 -1, 调用函数 获取错误码() 获取具体错误信息

2、整数类型     创建文件(字符类型 *文件名整数类型 属性);

解释:以指定文件名建立一个新文件,并设定读写属性。"属性"为文件读写属性,参见:打开文件   返回 文件句柄, 出错时返回 -1, 调用函数 获取错误码() 获取具体错误信息

3、整数类型     读文件(整数类型 文件句柄无类型 *缓冲区长度类型 字节数);  

解释:从文件句柄关联的文件中读入指定数目字节数据存入缓冲区中, 返回实际读取的字符数, 若文件已结束 返回 0, 文件句柄无效或其他错误 返回 -1 , 文本模式会将回车换行替换为换行 

4、整数类型     读文件字(整数类型 文件句柄汉字类型 *汉字);

解释:从文件句柄关联的文件中读入一个字符或汉字, 返回读取汉字的字节数,*汉字为读取的汉字, 若文件已结束 返回 0, 文件句柄无效或其他错误 返回 -1 ,*汉字 置为-1

5、整数类型     写文件(整数类型 文件句柄无类型 *缓冲区长度类型 字节数);

解释:将缓冲区中的‘字节数’个字符写入文件号为‘文件句柄’的文件中, 返回实际写入的字节数, 如果文件写入错误或句柄无效,返回-1, 文本模式会将换行替换为回车换行.

6、整数类型     写文件字(整数类型 文件句柄汉字类型 汉字);

解释:将字符或汉字写入文件号为‘文件句柄’的文件中, 返回实际写入的字节数, 如果文件写入错误或句柄无效,返回-1, 文本模式会将换行替换为回车换行.

7、整数类型     复制文件句柄整数类型 文件句柄 );

解释:复制一个文件句柄,返回新句柄

8、整数类型     文件句柄赋值(整数类型 原文件句柄整数类型 新文件句柄 ) ;

解释:将新文件句柄关联的文件关闭,然后将原文件句柄关联的文件同时关联到新文件句柄

9、整数类型     判断文件结束(整数类型 文件句柄 );

解释:检查文件是否结束,结束返回1,否则返回0

10、整数类型     文件长度(整数类型 文件句柄 );

解释:返回文件长度,文件句柄为文件号

11、整数类型     设置文件模式(整数类型 文件句柄,无符号 打开模式); 

解释:模式只能是: 打开文件_文本 或   打开文件_数据 , 通常用于改变 标准输入文件,标准输出文件 对输入输出的处理模式  返回 之前的文件模式。

本函数用来设定与文件句柄关联的文件的打开模式

12、整数类型     定位文件(整数类型 文件句柄整数类型 偏移整数类型 参考位置);

解释:函数"定位文件"把文件指针移到相对"参考位置" 指定"偏移"个字节处,"参考位置"可以为以下值: 定位_文件头  定位_当前位置  定位_文件尾

13、整数类型     当前文件位置(整数类型 文件句柄);

解释:本函数返回文件号为handle的文件指针,以字节表示

14、整数类型     是字符设备吗(整数类型 文件句柄);

解释:本函数用来取设备handle的类型

15、整数类型     关闭文件(整数类型 文件句柄);

解释:关闭文件句柄所关联的文件

(四)高级(流式)文件处理函数

1、文件类型 *   文件打开字符类型 *文件名,字符类型 *方式 );

解释:以指定方式打开文件, 返回文件指针, 可加的后缀为"文"或"t"、"数"或"b"。"数"或"b"表示文件以二进制形式进行操作,"文"或"t"没必要使用 

      ┌──┬────┬───────┬────────┐──────┐

      │方式│读写性  │文本/2进制文件│建新/打开旧文件 │中文方式    │

      ├──┼────┼───────┼────────┤──────┤

      │r   │读      │文本          │打开旧的文件    │读          │

      │w   │写      │文本          │建新文件        │写          │

      │a   │添加    │文本          │有就打开无则建新│添          │

      │r+  │读/写   │不限制        │打开            │读+         │

      │w+  │读/写   │不限制        │建新文件        │写+         │

      │a+  │读/添加 │不限制        │有就打开无则建新│添+         │

      └──┴────┴───────┴────────┘──────┘

2、文件类型 *   文件打开句柄整数类型 文件句柄,字符类型 *方式 );

3、文件类型 *   文件重新打开字符类型 *文件名,字符类型 *方式, 文件类型 *当前流 );解释:关闭“当前流”文件, 然后用输入的文件名和方式重新打开,将打开的文件指针赋值给当前流,并返回。

4、整数类型     文件读字符文件类型 *流 );   

解释:从文件中读入一个单字节字符, 成功返回读入的字符, 出错或文件结束 返回 -1 即 宏_文件结束

5、整数类型     文件写字符文件类型 *流 整数类型 zf );

解释:向文件中写入一个单字节字符, 成功返回写入的字符, 出错返回 -1 即 宏_文件结束

6、整数类型     文件读字文件类型 *流 汉字类型 汉字);  

解释:从文件中读入一个字符或汉字, 成功返回读入字符的字节数, *汉字是所读汉字, 若文件已结束 返回 0, 文件句柄无效或其他错误 返回 -1, *汉字 赋值 -1

7、整数类型     文件写字文件类型 *流, 汉字类型 zf );   

解释:成功 返回 写入的字节数, 失败 返回 0`

8、整数类型     文件回置字符文件类型 *流, 整数类型  一字符 ); 

9、字节类型 *   文件读字符串文件类型 *流, 字节类型 *缓冲区整数类型 个数);

解释:读入指定个数-1 个字符或碰到换行符或文件结束,添加字节0,返回 缓冲区,若返回空指针 表示出错或文件结束。

10、整数类型     文件写字符串文件类型 *流,  字节类型 *缓冲区 );

解释:返回值 大于等于 0 : 成功。 否则 返回 宏_文件结束

11、整数类型     文件读数据文件类型 *流, 字节类型 *缓冲区,整数类型 元素字节数,整数类型 元素个数 );

解释:从流中读入指定个数个单位长度的数据到缓冲区中, 出错 或文件提前结束, 返回的字节数会小于 元素个数.  可用 文件结束() 文件错误() 函数 测试状态..

12、整数类型     文件写数据文件类型 *流, 字节类型 *缓冲区,整数类型 元素字节数,整数类型 元素个数 ) ;

解释:向流中写入指定个单位长度的字节数据, 返回写入的字节数, 出错时返回的字节数会小于 元素个数. 可用 文件错误() 函数 测试.

13、整数类型     文件格式输入(文件类型 *输入流只读的 字符类型 *格式, ... );

解释:以格式化形式从流文件中读入一个格式串

14、整数类型     文件习格式输入(文件类型 *输入流只读的 字符类型 *格式, ... );

解释:以格式化形式从流文件中读入一个格式串

15、整数类型     文件格式输出(文件类型 *输出流只读的 字符类型 *格式, ... ) ;

解释:以格式化形式将一个字符串写给指定的流文件

16、整数类型     文件习格式输出(文件类型 *输出流只读的 字符类型 *格式, ... ) ;

解释:以格式化形式将一个字符串写给指定的流文件

17、整数类型     文件变参格式输入(  文件类型 *输入流只读的 字符类型 *格式变参类型 参数表 );

解释:以格式化形式从流文件中读入一个字符串,参数从参数表中取得

18、整数类型     文件习变参格式输入(  文件类型 *输入流只读的 字符类型 *格式变参类型 参数表 );

解释:以格式化形式从流文件中读入一个字符串,参数从参数表中取得

19、整数类型     文件变参格式输出(  文件类型 *输出流只读的 字符类型 *格式变参类型 参数表 );

解释:以格式化形式将一个字符串写给指定的流文件,参数从参数表中取得

20、整数类型     文件习变参格式输出(  文件类型 *输出流只读的 字符类型 *格式变参类型 参数表 );

解释:以格式化形式将一个字符串写给指定的流文件,参数从参数表中取得

21、整数类型     文件定位(文件类型 *,整数类型 偏移,整数类型 参考位置) ;  

解释:函数把文件指针移到"参考位置" 所指位置的向后"偏移"个字节处,"参考位置"可以为以下值:  定位_文件头  定位_当前位置   定位_文件尾

22、整数类型     文件当前位置(文件类型 *);

解释:函数返回定位在流中的当前文件指针位置,以字节表示

23、无类型       文件复位(文件类型 *);

解释:将当前文件指针‘流’移到文件开头

24、无类型       文件清除错误(文件类型 *);

解释:清除流stream上的读写错误

25、无类型       文件设置缓冲区(文件类型 *,字符类型 *缓冲区,整数类型 类型,无符号 缓冲区大小);

解释:给流指定一个缓冲区,大小为"缓冲区大小",类型为"类型",其值见下表

文件宏_全缓冲:文件是完全缓冲区,当缓冲区是空时,下一个输入操作将企图填满整个缓冲区.在输出时,在把任何数据写到文件之前,将完全填充缓冲区.

文件宏_行缓冲:文件是行缓冲区.当缓冲区为空时,下一个输入操作将仍然企图填整个缓冲区.然而在输出时,每当新行符写到文件,缓冲区就被清洗掉

文件宏_无缓冲:文件是无缓冲的.缓冲区和缓冲区大小参数是被忽略的.每个输入操作将直接从文件读,每个输出操作将立即把数据写到文件中.  

26、整数类型     文件关闭(文件类型 *);

解释:关闭一个流,可以是文件或设备(例如LPT1)

27、整数类型     文件全部关闭();

解释:关闭所有除标准输入或标准输出外的流

28、整数类型     文件刷新缓存(文件类型 *);

解释:清空缓冲区  流为空指针时清空所有输出流。

对缓冲区作处理,即对读的流,清空缓冲区;对写的流,将缓冲区内内容写入文件。成功返回0

八、 字符串处理函数

习语言字符串处理函数在接口目录下的“习语言字符串.接口”文件中声明,包含此接口文件即可直接使用字符串处理函数。

(一)国标GB18030函数

1、整数类型   数字转字母整数类型 数字 );

解释:将0-15数字转为'0'-'F'的十六进制字符。

2、整数类型   字母转数字整数类型 字母 );

解释:将'0'-'F'的十六进制字符转为0-15数字。

3、字类型     字节属性字节类型 字节值 );

解释:21 返回 由国标宏组成的字节属性, 可通过将返回值与国标宏相与来判断字节属性.

4、整数类型   字转字符串汉字类型 字符码,字节类型 *缓冲区, 整数类型 缓冲区长度 )解释:将字符或汉字转为字符串形式存入缓冲区,缓冲区长度必须大于等于5, 返回转换后的缓冲区长度,失败返回0

5、字节类型 字转串汉字类型 字符码 );

解释:功能:将字符或汉字转为字符串,方便输出。 注意:此函数为方便单线程程序使用,最近16次调用值有效,多线程请使用字转字符串

6、整数类型   字长度(  汉字类型 字符码 );    

解释:返回一个字符或汉字的字节长度

7、整数类型   字内码转串汉字类型 字符码,字节类型 *缓冲区, 整数类型 缓冲区长度 )解释:将字符或汉字内码转为16进制字符串形式存入缓冲区,缓冲区长度必须大于等于9, 返回转换后的缓冲区长度,失败返回0

8、整数类型   内码串转字字节类型 *缓冲区, 汉字类型 *字指针 )

解释:将字符串作为内码串转为汉字,成功返回已转换字节数,失败返回0

9、整数类型   当前字长度(字节类型 *字符串 );  

解释:返回当前字的字节长度, 字符串为空指针时返回 0

10、汉字类型   取当前字字节类型 *字符串 );   

解释:返回字符串当前字内码,字符串为空指针时返回 0

11、整数类型   前一字长度字节类型 *字符串 )

解释:返回字符串当前位置的前一个字长度,字符串为空指针时返回0, 否则返回字长度

12、汉字类型   取前一字字节类型 *字符串 );  

解释:返回字符串当前位置的前一个字内码,如果字符串为空指针时返回0,否则返回内码

13、汉字类型   串取字字节类型 *字符串, 整数类型  位置  );

解释:返回字符串指定字节位置的字内码, 字符串为空指针时 返回 0

14、汉字类型   串取字指针加加(字节类型 **字符串地址, 整数类型  位置 )

解释:返回字符串指定字节位置的字内码,并将指针加偏移后移到下一个字, 字符串为空指针时 返回 0 

15、汉字类型   串取字指针减减(字节类型 **字符串地址, 整数类型  位置 )

解释:返回字符串指定字节位置的字内码,并将指针加偏移前移到前一个字, 字符串为空指针时 返回 0

16、汉字类型   串取字位置加加(字节类型 *字符串, 整数类型  *位置指针 )

解释:返回字符串指定字节位置的字内码,并将位置指针后移一个字, 输入为空指针时 返回 0

17、汉字类型   串取字位置减减(字节类型 *字符串, 整数类型  *位置指针 )

解释:返回字符串指定字节位置的字内码,并将位置指针前移一个字, 输入为空指针时 返回 0

18、汉字类型   串指针加加(字节类型 **字符串地址)

解释:将串指针后移一个字,并返回所指向的字内码,字符串为空指针时 返回 0 

19、汉字类型   串指针减减(字节类型 **字符串地址)

解释:将串指针前移一个字,并返回所指向的字内码,字符串为空指针时 返回 0

20、汉字类型   串位置加加字节类型 *字符串, 整数类型  *位置指针 )

解释:将串内位置指针后移一个字,并返回所指向的字内码,字符串为空指针时 返回 0 

21、汉字类型   串位置减减字节类型 *字符串, 整数类型  *位置指针 )

解释:将串内位置指针前移一个字,并返回所指向的字内码,字符串为空指针时 返回 0

22、整数类型   串置字字节类型 *缓冲区,整数类型 缓冲区长度,整数类型 位置,汉字类型 字符码 );

解释:在缓冲区指定位置存入字内码,不会填充串结尾符,缓冲区长度必须大于位置+4, 返回写入的字节数  , 失败返回 0

23、整数类型   串置字指针加加字节类型 **缓冲区地址,整数类型 *缓冲区长度,整数类型 位置, 汉字类型 字符码 )

解释:在缓冲区指定位置存入字内码,并将缓冲区后移到下一个写入位置,缓冲区长度必须大于位置+4, 不会填充串结尾符,返回写入的字节数  ,失败返回 0

24、整数类型   串置字位置加加字节类型 *缓冲区,整数类型 缓冲区长度,整数类型 *位置指针, 汉字类型 字符码 )

解释:在缓冲区指定位置存入字内码,并将缓冲区后移到下一个写入位置,缓冲区长度必须大于位置+4, 不会填充串结尾符,返回写入的字节数  ,失败返回 0

25、汉字类型   字偏移串取字字节类型 *字符串, 整数类型 字偏移 );  

解释:取字符串当前位置指定字偏移的字内码, 字符串为空指针时返回 0

26、字节类型 求字偏移串指针字节类型 *串指针整数类型 字偏移 );   

解释:求字符串指定字偏移的串指针, 字符串为空指针时返回 空指针

27、整数类型   求字偏移串位置字节类型 *字符串, 整数类型 字偏移 )

解释:求字符串指定字偏移的串内位置, 字符串为空指针时返回 0

28、整数类型   移动串指针字符串类型 *字符串地址, 整数类型 字偏移 )

解释:将字符串指针移动指定字偏移,返回移动的字节数, 字符串为空指针时返回 0

29、整数类型   移动串位置字节类型 *字符串,整数类型 *位置指针, 整数类型 字偏移 )

解释:将字符串位置指针移动指定字偏移,返回移动的字节数, 字符串为空指针时返回 0

30、整数类型   字符串跳过空格字符串类型 *串指针  );

解释:31 跳过串指针开头的空格、tab字符, 返回跳过的字节数

31、整数类型   字符串长度(字符串类型 字符串 );

解释:32 将返回0结尾的字符串字节长度

32、整数类型   字符串字数(字符串类型 字符串 );

解释:33 将返回0结尾的字符串中字个数

33、整数类型  是数字汉字类型 x , 汉字类型 类型)

解释:根据类型参数 判别是否是十进制数字(0 – 9),或 简繁体数字, 判别是返回真,否则返回假。

类型可取汉字常量: 0:表示全角或半角、‘半角’、‘全角’、‘简体’、‘繁体’,‘简繁体’

34、整数类型  是英文字母(汉字类型 , 汉字类型 全半角 , 汉字类型 大小写)

解释:是英文字母 (A – Z 或 a – z) 等同C语言函数: isalpha ,isupper, islower , 是返回 真, 否则返回 假

参数“全半角”可取汉字常量: 0:表示全角或半角、‘半角’、‘全角’。

参数“大小写”可取汉字常量: 0:表示大写或小写、‘大写’、‘小写’。

35、整数类型  是英文字母数字(汉字类型 , 汉字类型 全半角 , 汉字类型 大小写);

解释:是英文字母或阿拉伯数字 (A – Z, a – z, 或 0 – 9)  等同C语言函数: isalnum   ,是返回 真, 否则 返回 假

参数“全半角”可取汉字常量: 0:表示全角或半角、‘半角’、‘全角’。

参数“大小写”可取汉字常量: 0:表示大写或小写、‘大写’、‘小写’。

36、整数类型  是双字节字(汉字类型 x )

37、整数类型  是半角字(汉字类型 x );

38整数类型  是全角字(汉字类型 x );

39、整数类型  是控制字符(汉字类型 x );

解释:是控制字符(0x00 – 0x1F 或 0x7F) 等同C语言函数: iscntrl  

40、整数类型  是空白字符(汉字类型 x );

解释:是空白字符(0x09 – 0x0D 或 0x20 或 0xa1a1) 等同C语言函数: isspace

41、整数类型  是空格(汉字类型 x );

42、整数类型  是空格跳格(汉字类型 x ) ;   

43、整数类型  是十六进制数字(汉字类型 , 汉字类型 全半角 , 汉字类型 大小写 ) ;

解释:是十六进制数字 (A – F, a – f, 或 0 – 9) 等同C语言函数: isxdigit 

参数“全半角”可取汉字常量: 0:表示全角或半角、‘半角’、‘全角’。

参数“大小写”可取汉字常量: 0:表示大写或小写、‘大写’、‘小写’。

44、整数类型  是国标2312编码汉字类型 x, 汉字类型 类型 )

解释:判断是否是 GB2312中编码、汉字、符号。 若是返回 真, 否则 返回 假

参数“类型” 可取 0:表示国标2312编码判别, ‘符号’: 表示国标2312编码符号、‘汉字’: 表示国标2312编码汉字

45、整数类型  是国标编码汉字类型 x, 汉字类型 类型 )

解释:判断是否是国标编码、汉字、符号。 若是返回 真, 否则 返回 假

参数“类型” 可取 0:GB18030编码判别, ‘双字’: 双字节国标编码判别、‘四字’: 四字节国标编码判别、‘汉字’:汉字判别(去除GB2312符号区)、‘双汉’:双字节汉字

46、整数类型  是汉字字母(汉字类型 x );    

解释:判断是否是 不包括GB2312符号区的所有GB2312,GB18030 编码的文字 加上 全半角字母

47、整数类型  是汉字字母数字(汉字类型 x );

解释:判断是否是 不包括GB2312符号区的所有GB2312,GB18030 编码的文字 加上 全半角字母数字

(二)国标转换函数

1、汉字类型  转半角汉字类型 x )

解释:将字符转换为半角

2、汉字类型  转全角汉字类型 x )

解释:将字符转换为全角

3、汉字类型  转大写汉字类型 x )

解释:将字符转换为大写

4、汉字类型  转小写汉字类型 x )

解释:将字符转换为小写

5、整数类型  全角转半角字符串类型 原字符串字符串类型 输出字符串整数类型 输出字符串长度 );

解释:返回转换后的字符串字节长度

6、整数类型  半角转全角字符串类型 原字符串字符串类型 输出字符串整数类型 输出字符串长度 );

解释:返回转换后的字符串字节长度

7、汉字类型  数字转中文整数类型 数字整数类型 大写 );

解释:将0-10转为中文数字, 大写=1表示转为中文繁体数字,=0表示转为简体,返回 0 表示 输入错误,无法转换, 否则为转换后国标汉字编码

8、整数类型  中文转数字汉字类型 中文); 

解释:将中文数字转换为0-10的阿拉伯数字, 无法转换返回 -1, 否则返回数字编码

(三)转换函数

1、整数类型    字符串转整数字符串类型 字符串整数类型 进制字符串类型 结束位置 );

解释:结束串用于指明整数后续字符的位置, 可以为空指针

2、自然数类型  字符串转自然数字符串类型 字符串整数类型 进制字符串类型 结束位置 );

解释:结束位置用于指明自然数后续字符的位置, 可以为空指针

2、双精度类型  字符串转浮点数(字符串类型 字符串 ,  字符串类型 结束位置);

解释:结束位置用于指明浮点数后续字符的位置, 可以为空指针

4、字符串类型  整数转字符串(整数类型   整数值,   字符串类型 输出缓冲区,  整数类型 缓冲区长度整数类型 进制 );

解释:进制只支持 2-36, 输出类型 = 0

2、字符串类型  自然数转字符串(自然数类型 自然数值字符串类型 输出缓冲区,  整数类型 缓冲区长度整数类型 进制);

7、字符串类型  浮点数转字符串(双精度类型 浮点数值字符串类型 输出缓冲区, 整数类型 缓冲区长度 整数类型 有效位数);

解释:输出缓冲区长度应大于 "有效位数"+8 ;成功返回输出缓冲区, 否则返回空指针

8、字符串类型  浮点转字符串(双精度类型 浮点数值, 整数类型 精度, 整数类型 *小数点位置指针, 整数类型 *符号指针  );

解释:精度指明小数点后数字位数,不足补零。 小数点位置为负时表示小数点位于首字符左侧, 符号为0表示正, 否则为负。

返回内部静态缓冲区地址, 下一次调用此函数将改写此静态缓冲区内容.

(四)字符串操作函数

1、字符类型 *   字符串转小写(字符类型 *);  

解释:将字符串中的大写字母全部转换成小写字母,并返回转换后的字符串

2、字符类型 *   字符串转大写(字符类型 *串 );

解释:将串中的小写字母全部转换成大写字母,并返回转换后的串

3、字符类型 *   字符串复制(只读的 字符类型  *源串,  字符类型 *目标串);  

解释:将源串内容复制到目标串中,返回目标串, 不推荐使用

4、字符串类型   字符串安全复制(只读的 字符串类型 源串 字符串类型 目标串,   整数类型   目标串长 );

解释:字符串安全复制, 目标串长小于等于源串长时,只复制 目标串长 -1 个字符, 最后一个字节填充 0.

5、字符类型  *  字符串定长复制(只读的 字符类型  *,    整数类型 复制字节数字符类型  *目标);

解释:复制"源"串中的前"长度"个字符到"目标"中,返回目标串, 不推荐使用

6、字符串类型   字符串定长安全复制字符串类型   源串 整数类型 复制字节数字符串类型 目标串整数类型 目标串长 );

解释:字符串定长安全复制, 目标串长小于等于复制字节数时,只复制 目标串长 -1 个字符, 最后一个字节填充 0. 否则复制指定字节数;成功返回目标串,否则返回空指针

7、字符类型 *   字符串克隆(只读的 字符类型  *);

解释:申请内存然后复制字符串, 返回复制的新串指针, 使用完后记得释放内存, 不推荐使用

8、字符类型  *  字符串连接(字符串类型 目标串字符串类型 源串 );

解释:将源串添加到目标串末尾,并返回目标串, 注意缓冲区溢出问题

9、字符类型  *  字符串定长连接(字符类型  *目标,   只读的 字符类型 *长度类型 长度 );

解释:将源串中最多长度个字符添加到目标串尾部

10、字符类型  *  字符串安全连接(字符类型  *目标,   长度类型 目标缓冲区长度, 只读的 字符类型 *源 )

解释:根据目标串缓冲区长度,将源串中尽可能多的字符添加到目标串尾部

11、字符类型  *  字符串查找(只读的 字符类型 *整数类型 字符码);

解释:查找并返回字符c在字符串s中第一次出现的位置

12、字符类型  *  字符串反向查找(只读的 字符类型 *整数类型 字符码);

解释:扫描给定字符在字符串中最后一次出现的位置, 找到返回位置指针, 否则返回 空指针

13、字符类型  *  字符串查找字符集(只读的 字符类型 *,   只读的 字符类型 *字符集);

解释:扫描字符串,并返回字符集中字符第一次在串中出现的位置, 没有出现则返回 0

14、字符类型  *  字符串查找子串(只读的 字符类型 *源串只读的 字符类型 *子串 );

解释:扫描源串,并返回子串在源串中第一次出现的位置  ( strstr )

15、整数类型     字符串比较(只读的 字符类型 *1, 只读的 字符类型 *2);

解释:比较字符串1与串2的大小,并返回串1-串2 (返回 0 表示相等, -1 : 表示串1 < 串2, 1 : 表示 串1 > 串2 )

16、整数类型     字符串定长比较(只读的 字符类型 *1, 只读的 字符类型 *2, 长度类型 长度);

解释:比较字符串1与串2中的前"长度"个字符

17、整数类型     字符串小写比较(只读的 字符类型 *1,只读的 字符类型 *2);

解释:字符串转为小写再比较, 返回<0: 串1 < 串2, == 0 : 串1 == 串2 ; 否则 串1 > 串2

18、整数类型     字符串定长小写比较(只读的 字符类型 *1,只读的 字符类型 *2, 长度类型  长度 );

解释:比较字符串1与串2中的前"长度"个字符

19、字符类型 *   字符串填充(字符类型 *,整数类型 字符码);

解释:将一个字符串s中的所有字符置为一个给定的字符ch

20、字符类型 *   字符串定长填充(字符类型 *,整数类型 字符码,长度类型 长度);

解释:将字符串的前"长度"个字符置为"字符"

21、字符类型 *   字符串倒序(字符类型 *);

解释:将字符串s中的字符全部颠倒顺序重新排列,并返回排列后的字符串

22、长度类型     子串长度(只读的 字符类型 *1, 只读的 字符类型 *字符集);

解释:扫描字符串1,并返回在串1中由串2所限定的字符集中字符个数

23、长度类型     非子串长度(只读的 字符类型 *1,只读的 字符类型 *2);

解释:扫描串1,返回串1从头开始不在字符集串2中的字符个数,若第一字符就在串2中,则返回0

24、字符类型 *   字符串切分(字符类型 *只读的 字符类型 *定界符);

解释:字符串切分, 源字符串是由定界符中定义的符号所分隔,碰到定界符,将定界符替换为0,并返回子串, 再无子串时,返回 空指针, 当串为空指针时,继续之前的切分,返回下一个子串。(strtok)

(五)内存操作函数

1、无类型 *     申请_内存双字类型 字节数字符串类型 文件名整数类型 行 );

解释:申请内存,返回申请到的内存块首地址指针, 返回的内存为原始状态,未清零.

2、无类型 *     申请_内存数组双字类型 元素个数双字类型 元素字节大小字符串类型 文件名整数类型 行 );

解释:申请内存数组,并对数组元素初始化为0

3、无类型 *     重分配_内存块无类型 * 内存指针,  双字类型 字节数,  字符串类型 文件名整数类型 行 );

4、无返回值     释放内存无类型 * 内存指针 );

5、无类型 *     带停止位内存复制只读的 无类型 *源指针整数类型 停止字节, 无类型 *目标指针长度类型 复制字节数 )

解释:从源指针指向的内存复制指定字节个数据到目标指针指向的内存块.但遇到停止字节值时复制后会停止.没有遇到停止字节则返回 空指针, 否则返回停止字节下一个字节的地址.

6、无类型 *     内存复制无类型 *源指针无类型 *目标指针长度类型 复制字节数);

7、无类型 *     内存查找(只读的 无类型 *缓冲区整数类型 查找字节长度类型 查找长度 );

解释:没有找到则返回 空指针, 否则返回查找字节首次出现的地址.

8、整数类型     内存比较(只读的 无类型 *缓冲区1, 只读的 无类型 *缓冲区2,  长度类型 比较字节数 );

解释:返回 0 : 缓冲区1 等于 缓冲区2,  < 0 : 缓冲区1 小于 缓冲区2 ;   > 0 : 缓冲区1 大于 缓冲区2

9、整数类型     内存小写比较(只读的 无类型 *缓冲区1, 只读的 无类型 *缓冲区2,  长度类型 比较字节数 );

解释:返回 0 : 缓冲区1 等于 缓冲区 2,  < 0 : 缓冲区1 小于 缓冲区2 ;   > 0 : 缓冲区1 大于 缓冲区2

10、无类型 *     内存搬移(无类型 *,  长度类型 内存块长度无类型 *目标 );

解释:内存搬移类似内存复制, 但可正确处理源和目标重叠的情形. 返回 '目标' 地址

11、无类型 *     内存填充(无类型 *缓冲区整数类型 字节值,  长度类型 填充字节数 );

解释:返回缓冲区

(六)扩展函数定义

1、字节类型 *   文件名后缀替换(字符类型 *文件名字符类型 *后缀字符类型 输出文件名[], 自然数类型 输出文件名长度 )

解释:为没文件后缀时添加个缺省后缀,有后缀时强制将文件名后缀改为指定后缀,后缀字符串包含小数点,可以为:xx.yy、 xx、 .yy 等格式

2、字符类型 *   文件名取路径(字符类型 *文件名字符类型 路径缓冲区[], 自然数类型 缓冲区长度 );

解释:从文件名中抽取路径信息放入路径缓冲区.

3、字符类型 *   文件名去路径后缀(字符类型 *文件名字符类型 缓冲区[], 自然数类型 缓冲区长度 );

解释:从文件名中去除路径和后缀,返回纯文件名称信息放入缓冲区.

4、字符类型 *   文件名去后缀(字符类型 *文件名字符类型 缓冲区[], 自然数类型 缓冲区长度 );

解释:从文件名中去除后缀,返回无后缀文件名放入缓冲区.

5、字符类型 *   文件名取后缀(字符类型 *文件名 );

解释:返回文件名后缀部分指针.

九、 图形函数

习语言文件图形函数在接口目录下的“习语言图形.接口”文件中声明,包含此接口文件即可直接使用图形函数。

(一) 图形系统函数

1、整数类型   图形初始化显示器(只读的 字符类型名称, 整数类型 宽 整数类型 高只读的  字符类型图标, 自然数类型 属性, 显示器消息处理函数 消息回调 )

解释:模拟显示器初始化 输入为模拟显示器名称,大小, 图标号码值,类型 和 消息处理函数,   类型 取值 1 时打开调试窗口,通常使用0 ,  如果不需要消息处理函数, 则此参数传 0

2、整数类型   图形打开显示器整数类型 模式 );

解释:打开虚拟显示器  模式= 0 : 正常显示, =1或‘隐藏’:隐藏, 返回 0 :成功, -1 :失败 

3、整数类型   图形关闭显示器整数类型 立即 ); 

解释:关闭虚拟显示器  立即=0: 发送关闭消息后返回 须调用 图形等待显示器关闭, =1或‘立即’ : 直到关闭后才返回。 返回 0 : 成功, 返回-1, 表示失败(显示器没开) 

4、整数类型   图形等待显示器关闭无类型 ); 

解释:等待显示器关闭, 返回0: 成功执行,  -1:视窗没打开,-2:在消息循环中 

          

5、整数类型   图形获取显示器状态无类型 );

解释: 获取虚拟显示器打开或关闭的状态 。

6、整数类型   图形设置显示器状态自然数类型 状态 );   

解释:成功执行 返回 1, 否则 返回 0    状态取值: ‘隐藏’、‘显示’

7、无类型     图形刷新显示无类型 );

解释: 刷新虚拟显示器显示 

8、整数类型   获取显示器关闭码无类型 );  

解释:获取显示器关闭码,视窗退出码

          

9、无类型     图形初始化定时器(  定时器事件处理函数 定时器回调  );   

解释: 初始化定时消息处理函数 

10、双字类型   图形创建定时器(  双字类型 定时器号码双字类型 时间间隔  );   

解释: 成功返回 定时器号码, 否则返回 0

11、整数类型   图形销毁定时器双字类型 定时器号码 );

12、无类型  图形清屏无类型 );

解释:清除屏幕内容 。

13、整数类型  图形等待按键消息整数类型 *键值指针 );

解释:返回 0 :  虚拟显示器关闭, 键值指针返回的是返回值,  

返回 1 :  得到按键消息,   键值指针返回的是键值

14、整数类型  图形有按键消息吗整数类型 *键值指针 );

解释:返回 -1:  虚拟显示器关闭, 键值指针返回的是返回值,  返回 0 : 无按键消息,  

返回 1 :  得到按键消息,   键值指针返回的是键值

(二) 图形属性操作

1、整数类型  图形恢复画笔(无参数);

解释:      恢复原始画笔

2、整数类型  图形恢复画刷(无参数);

解释:      恢复原始画刷

3、整数类型  图形恢复字体(无参数);

解释:      恢复原始字体

4、颜色类型  图形设置背景色颜色类型  背景色);

解释:      设置背景色

5、颜色类型  图形获取背景色(无类型);

解释:      取背景色

6、整数类型  图形设置背景模式整数类型 模式);

解释:      设置背景绘制模式 : 图形宏_透明背景, 图形宏_使用背景色 ,

 成功返回之前的背景模式,  失败返回0或-1

7、整数类型  图形获取背景模式( );

解释:      取当前的背景模式

8、整数类型  图形设置前景混色模式整数类型 模式 );

解释:      设置前景色混色模式 , 取值:图形宏_混色_XX  , 

成功返回之前的混色模式,  失败返回0

9、整数类型  图形获取前景混色模式无类型 );

解释:      获取前景色混色模式

10、颜色类型  图形设置文本颜色颜色类型 文本色 );

解释:      设置文本颜色

11、颜色类型  图形获取文本颜色无类型);

12、整数类型  图形设置画笔画笔类型 *画笔指针);

解释:      画笔用来划线条用的

13、整数类型  图形获取画笔画笔类型 *画笔指针);

14、颜色类型  图形获取画笔色无类型 );

15、整数类型  图形设置画刷画刷类型 *画刷指针);

解释:      画刷用来填充一个图形区域的,画填充图形时用到画刷

16、整数类型  图形获取画刷画刷类型 *画刷指针);

17、颜色类型  图形获取画刷色无类型 );

18、整数类型  图形设置字体字体类型 *字体指针);

解释:      字体在显示文字时用到

19、整数类型  图形获取字体字体类型 *字体指针);

20、整数类型  图形获取字体属性字体属性类型 *属性指针 )

21、整数类型  图形获取字体名字字符类型 *字体名指针, 整数类型 缓冲区大小)

22、整数类型  图形设置文字参考点双字类型 参考点)

解释:      设置文字的参考点,影响输出文字的位置, 

参考点为: 文字参考点_XX宏,可以多个 进行位或 作为输入

23、双字类型  图形获取文字参考点无类型 );

(三) 图形基础函数

1、颜色类型  图形画点整数类型 水平坐标 , 整数类型  垂直坐标, 颜色类型 颜色 )

2、颜色类型  图形取色整数类型 水平坐标 , 整数类型  垂直坐标 );

3、整数类型  图形设置当前位置整数类型 水平坐标 , 整数类型  垂直坐标 点类型 *原位置指针);

解释:      将当前位置设为指定坐标

4、整数类型  图形获取当前位置点类型 *位置指针 );

(四) 画轮廓函数

1、整数类型  图形画到整数类型 水平坐标整数类型 垂直坐标 );

解释:      从当前位置到指定位置划线

2、整数类型  图形画线 整数类型 水平坐标,整数类型 垂直坐标,整数类型 水平坐标,整数类型 垂直坐标1  );

解释:      图形画线  起点坐标为:水平坐标0,垂直坐标0, 

终点坐标为:水平坐标1,垂直坐标1

3、整数类型  图形画折线 点类型 *点数组整数类型 点个数字符类型 使用当前位置 );

解释:      画折线 , 当 使用当前位置 = 1 时, 

函数返回后 当前位置会改变为点数组的最后一个点

4、整数类型  图形画多条折线点类型 *点数组双字类型 *折线点个数数组双字类型 折线数 );

5、整数类型  图形画椭圆弧线矩形类型 *矩形外框点类型 *起点指针点类型 *终点指针字符类型 方向 );

6、整数类型  图形画圆弧线  整数类型 水平中心点整数类型 垂直中心点,  双字类型 半径双字类型 起始角度,  双字类型 终止角度字符类型 使用当前位置 );

解释:      画圆弧  输入角度 0-360

7、整数类型  图形画椭圆   ( 整数类型 左坐标 ,整数类型 上坐标 ,整数类型 右坐标 ,整数类型 下坐标 );

解释:      画椭圆框

8、整数类型  图形画圆   ( 整数类型 水平中心点整数类型 垂直中心点,  双字类型 半径 );

解释:      画圆,不填充

9、整数类型  图形画方框   ( 整数类型 左坐标 ,整数类型 上坐标 ,整数类型 右坐标 ,整数类型 下坐标  );

解释:      画方框,不填充

10、整数类型  图形画贝塞尔曲线点类型 *点数组整数类型 点个数,  字符类型 使用当前位置 );

解释:      画贝塞尔曲线  点个数必须为3的整数倍 + 1, 使用当前点时应为3的整数倍

(五) 画填充图形函数

1、整数类型  图形画矩形整数类型 左坐标 ,整数类型 上坐标 ,整数类型 右坐标 ,整数类型 下坐标  );

解释:      画填充矩形

2、整数类型  图形画椭圆形整数类型 左坐标 ,整数类型 上坐标 ,整数类型 右坐标 ,整数类型 下坐标  );

解释:      画填充椭圆

3、整数类型  图形画圆角矩形整数类型 左坐标 ,整数类型 上坐标 ,整数类型 右坐标 ,整数类型 下坐标 整数类型 圆角宽整数类型 圆角高 );

解释:      画圆角矩形

4、整数类型  图形画弧形矩形类型 *矩形外框点类型 *起点指针点类型 *终点指针字符类型 方向  );

5、整数类型  图形画扇形矩形类型 *矩形外框点类型 *起点指针点类型 *终点指针字符类型 方向  );

6、整数类型  图形画多边形点类型 *点数组整数类型 点个数 );

7、整数类型  图形画多个多边形点类型 *点数组整数类型 *多边形点个数数组,  整数类型 多边形数目 );

8、整数类型  图形指定画刷画矩形 ( 矩形类型 *四边坐标指针画刷类型 *画刷指针 );

解释:      用特定画刷填充矩形, 不影响当前画刷

9、整数类型  图形矩形颜色翻转矩形类型 *矩形指针 );

解释:      矩形框内颜色翻转

10、整数类型  图形画圆形   ( 整数类型 水平中心点整数类型 垂直中心点,  双字类型 半径 );

解释:      画圆形填充

(六) 文字输出函数

1、整数类型  图形输出文字整数类型 水平坐标, 整数类型 垂直坐标, 字符类型 字符串指针 );

解释:      在屏幕指定坐标开始输出文字 坐标和文本定位模式决定了具体的文本输出位置

2、整数类型  图形显示文字矩形类型 *矩形指针,  双字类型 显示方式,  字符类型 *字符串指针);

解释:      在指定区域内以指定方式显示文字