回 帖 发 新 帖 刷新版面

主题:INKEY$问题

INKEY$函数太奇怪了:
我输入了这样几行语句:
WHILE INKEY$=""
WEND 
它可以使程序暂停一下。
但我输入:
k$=INKEY$=""
while k$=""
wend
就进入死循环了,能不能说明一下INKEY函数的所以特殊用法?我的QBASIC书上只说它从键盘上读入一个字符,通常用于程序暂时等待,但我觉得好像还有很多,比如与do while INKEY$="" ......
希望能够详细解答一下!


另外,如果我把INKEY$假设是个数字,我用
a=INKEY$
while a=""
wend
它提出type mismatch,但我从别人的程序上看到有类似于a=INKEY$的,运行也不出错,是为什么?

回复列表 (共2个回复)

沙发

1)INKEY$函数
功能:从键盘上读入一个字符。
       [color=FF0000]返回一个字节或两个字节的字符串[/color]
           空字符串(长为0)表示美有从键盘输入字符
           一个字节的字符串是从键盘上读的实际字符
               如按 a  ,INKEY$返回CHR$(97)
           两个字节的字符串是表示一个专用扩展代码,其中第一个字节为00H
               如按 ↑ ,INKEY$返回CHR$(0)+CHR$(72)
        执行INKEY$时,屏幕不显示字符,可接收绝大部分字符,下列情况除外
           Ctrl+Break        中断程序执行
           Ctrl+Num Lock     暂停执行
           Ctrl+Alt+Del      系统热启动
           Prtsc             屏幕硬拷贝
   常用来对键盘进行搜索,以确定用户有没有打入字符
   例
   PRINT "Press any key to continue..."
   DO
   LOOP WHILE INKEY$ = ""     '或  LOOP UNTIL INKEY$ <> ""
   又如 清空键盘缓冲区
   DO
     key$ = INKEY$
   LOOP UNTIL key$ = ""

板凳

inkey$
正确的说法应该是从键盘缓冲区中读入一组按键信息
(不一定是实时的,你读进来的可以是三十个小时前按的按键,假如你中间的处理程序可以坚持三十个小时的话)

我来回复

您尚未登录,请登录后再回复。点此登录或注册