http://lee.lava8.com 谢谢哈哈,努力学习中~~~ 引用第3楼leesoft于2006-12-30 11:28发表的“”:
到这里下载
http://lee.lava8.com
下了,正在学习~~谢谢 电脑上的C语言有stdio.h之类的头文件可以#include一下,不要以为scanf用起来就是是天经地义的,只不过人家已经给你写好了函数放在那里。LAVA好象更注重图形处理,这方面比较薄弱,大家都是自己写输入函数来用.
我这里有个简陋的输入函数,可以给你看看:
原型:Input(char x,char y,char lenth,char mode)
说明:该函数被include前要定义足够大的全局变量TEMP,输出的字串被保存在这里.
x,y为光标在屏幕上的初始位置;
lenth为输入字串的长度限制;
mode为输入格式,mode=1时只能输入数字,mode=0时可以输入英文字符和数字.
可惜不能输入汉字和符号,真想找个代码来瞧瞧.
附上Input.h,放在文件夹 函数库 里可以include后用编译器来编译.不嫌差就拿去用吧~!
原代码如下:
char TEMP;
char Input(char x,char y,char lenth,char mode)
{
char NUM,len;
char i,key,inkey;
char shift,caps;
TEMP=0;
NUM='0';NUM='b';NUM='n';NUM='m';NUM='g';NUM='h';NUM='j';NUM='t';NUM='y';NUM='u';
key=0;
len=0;
i=0;
caps=0;
shift=0;
if(mode==1)shift=1;
while(key!=ESC&&key!=ENTER)
{
inkey=0;
TextOut(x,y,TEMP,0);
if(shift)TextOut(0,68,"NUM",0);
else
{
if(caps)TextOut(0,68,"ENG",0);
else TextOut(0,68,"eng",0);
}
Block(0,68,17,79,2);
Refresh();
Box(x+len*6+1,y,x+len*6+6,y+10,1,2);
key=getchar();
if(key==ENTER||key==ESC)inkey++;
if(!mode&&key==SHIFT)
{
shift=(shift==0);
inkey++;
}
if(!shift&&key==CAPS)
{
caps=(caps==0);
inkey++;
}
if(key==F2||key==LEFT)
{
if(len)
{
TextOut(len*6+x-6,y," ",0);
TEMP[--len]=0;
}
else Beep();
inkey++;
}
if(inkey==FALSE)
{
if(lenth-len)
{
if(shift)
{
for(i=0;i<11;i++)
{
if(key==NUM)
{
TEMP=48+i;
TEMP[++len]=0;
}
}
}
else
{
if(caps&&key>96&&key<123)key=key-32;
TEMP=key;
TEMP[++len]=0;
}
}
else Beep();
}
}
inkey=len;
if(mode&&inkey==0)
{
inkey=1;
TEMP='0';
TEMP=0;
}
if(key==ESC)inkey=FALSE;
return inkey;
}
void main()
{
int x;
ClearScreen();
SetScreen(1);
TextOut(0,0,"请输入字串:",0);
x=Input(66,0,14,1);
printf("The string len is %d.\n",x);
TextOut(0,13,TEMP,0x40);
getchar();
}
LAVA怎么替代SCANF语句??另求一个钟表源代码~
我刚学C语言,有一些东西C和LAVA不一样,我听人说那个SCANF语句可以用GETCHAR替代,请教下怎么用好么,比如我要算一个加法,怎么用GETCHAR语句??另外求一个钟表的源代码,以前的帖的那个我编译不了,也看不懂~~
还有,在C语言的教程里,没有关于图片的介绍啊,比如0XFF,3X00,之类的东东,谁能给我讲一下啊??谢谢了.
我现在在自学,用的教材是清华大学的那本可以砸死人的老砖头教材~~
页:
[1]