为什么我在 pascal 中使用 record 'struct' 时会跳过?
Why I get this skipping when I work with record 'struct' in pascal?
当我告诉他货品编号时,他跳过了reference和designation的输入,直接进入price的输入,如图所示
首先,您的输出图像不符合您的代码。正如您的图片所示,代码 until ((n>=3)...
不接受输入“1”。可能是你做完图改代码了
其次,程序 运行 通过所有用户输入请求的原因是您使用 read()
而不是 readln()
。
Read()
从输入缓冲区 读取所有字符,但不包括 Enter[= 产生的 CRLF
40=] 键。 Read()
将 CRLF
个字符留在缓冲区中。
ReadLn()
从缓冲区读取所有字符,包括 CRLF
个字符.
当您在上一次调用 Read()
之后调用 Read()
时,缓冲区中仍然有来自上一次数据输入的 CRLF
个字符,代码没有理由等待那些字符,所以它只是在下一行隆隆作响。
因此,当您阅读用户条目时,请使用 ReadLn()
而不是 Read()
。
当我告诉他货品编号时,他跳过了reference和designation的输入,直接进入price的输入,如图所示
首先,您的输出图像不符合您的代码。正如您的图片所示,代码 until ((n>=3)...
不接受输入“1”。可能是你做完图改代码了
其次,程序 运行 通过所有用户输入请求的原因是您使用 read()
而不是 readln()
。
Read()
从输入缓冲区 读取所有字符,但不包括 Enter[= 产生的 CRLF
40=] 键。 Read()
将 CRLF
个字符留在缓冲区中。
ReadLn()
从缓冲区读取所有字符,包括 CRLF
个字符.
当您在上一次调用 Read()
之后调用 Read()
时,缓冲区中仍然有来自上一次数据输入的 CRLF
个字符,代码没有理由等待那些字符,所以它只是在下一行隆隆作响。
因此,当您阅读用户条目时,请使用 ReadLn()
而不是 Read()
。