|
计算器程序
程序名称: |
dOutput 模拟控制台 |
平台: |
fx-9860GII fx-9860G & Slim fx-9750GII |
系统/软件要求: |
暂无 |
版本号: |
1.01 |
类型: |
其他 |
作者: |
Anderain Lovelace (diameter) |
大小(K): |
129 |
更新日期: |
2012-01-27 |
描述: |
详见贴 |
已知缺陷: |
暂无 |
源代码: |
开源/部分开源 |
本帖最后由 diameter 于 2012-1-27 20:34 编辑
你是否熟悉了在PC上编写CUI的C语言程序呢?你是否对printf函数恋恋不舍呢?昨天我试了wotof1996的iHacker,发现命令行界面实在是有点蛋疼...我想起了当年还在用RGSS写游戏脚本时写的Console,于是就付诸实践,把其移植到了9860上。
我使用了一个简单的链表,实现了伪标准输出(输出至屏幕终端),没什么新意,主要是实现了输出自动换行(此行不够了跳到下一行)和滚屏。
输入有两个函数,一个通过一个编辑框输入。函数原型
int dGetLineBox (char * s,int max,int width,int x,int y);
用户可以指定输入最大字符长度、输入框字符数(宽度)和其位置
另一个输入函数依赖伪标准输出dStdOut
int dGetLine (int max,char * s);
它会自动在dStdOut光标最后位置进行输入,输入内容不能换行,但是可以滚动(当然,输入内容不会被加入dStdOut,需要用户手动加入)
输出建议只使用dPrintf,与printf的使用方法完全一样
看下面代码,就实现了一个简单的console- int dConsole ()
- {
- char buf[128];
- *buf = '\0';
- dPrintf ("Welcome to Console\n");
- while (1)
- {
- dPrintf("\nC:\\>");
- dStreamRedrawScreen (dStdOut);// in fact , you may also use dStdOutRefresh
- dGetLine(128,buf);
- dPrintf(buf);
- buf = '\0';
- }
- }
复制代码 图:
至于清除屏幕,使用dStream中的函数dStreamDestory把dStdOut内容清空即可
注意!若想使用dStdOut,光把源文件添加进你的工程可不够,一定要在AddIn_Main里面初始化dStdOut(调用dStandardOutputInitialize函数即可)
另外想要将dStdOut的内容显示到屏幕,需调用dStdOutRefresh函数 |
评分
-
查看全部评分
|