leesoft 发表于 2006-12-30 11:15:04

scanf是函数,不是语句

yoyohenry 发表于 2006-12-30 11:21:06

下lava手册看~

leesoft 发表于 2006-12-30 11:28:18

到这里下载
http://lee.lava8.com

genius5201 发表于 2006-12-30 16:57:15

谢谢哈哈,努力学习中~~~

genius5201 发表于 2006-12-30 17:40:20

引用第3楼leesoft于2006-12-30 11:28发表的“”:
到这里下载
http://lee.lava8.com
下了,正在学习~~谢谢

windybell 发表于 2006-12-31 20:45:20

  电脑上的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=&#39;0&#39;;
   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();

}

genius5201 发表于 2006-12-30 11:01:47

LAVA怎么替代SCANF语句??另求一个钟表源代码~

我刚学C语言,有一些东西C和LAVA不一样,我听人说那个SCANF语句可以用GETCHAR替代,请教下怎么用好么,比如我要算一个加法,怎么用GETCHAR语句??

另外求一个钟表的源代码,以前的帖的那个我编译不了,也看不懂~~

还有,在C语言的教程里,没有关于图片的介绍啊,比如0XFF,3X00,之类的东东,谁能给我讲一下啊??谢谢了.

我现在在自学,用的教材是清华大学的那本可以砸死人的老砖头教材~~
页: [1]
查看完整版本: LAVA怎么替代SCANF语句??另求一个钟表源代码~