有没有办法在读取特定字符后阻止读取字符继续?

时间:2020-10-21 18:00:02

标签: scheme

我只是想知道何时接受用户输入并且您已经确定某个字符是否可以阻止read-char读取输入中的其余字符。

出现问题是因为这是一个循环,我只需要读取第一个字符并移动并提示输入新的字符即可。

有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

read-char将仅从特定端口读取一个字符。因此问题出在您的程序控制流程中。没有任何源代码,实际上不可能确定问题所在。

读取字符到特定字符的一种方法是:

;; this function reads characters from port
;; until the character k is reached
;; all characters before k will be returned as one string
(define (read-until-k port)
  (let loop ((current-chr (read-char port))
             (output-string ""))
    (cond
      ((eof-object? current-chr) output-string)
      ((eq? current-chr #\k) output-string)
      (else
        (loop (read-char port)
              (string-append output-string 
                             (string current-chr)))))))