【问题标题】:How to read input until the user enters ^X如何在用户输入 ^X 之前读取输入
【发布时间】:2010-05-24 07:52:54
【问题描述】:

我正在为我的 esolang 创建一个解释器,我需要用户输入一些文本,然后这些文本将被解释为一个 INTERCAL 程序。我希望用户输入文本,其中可能包含任何字符,包括换行符,直到用户按下 ^X (Ctrl-X),如下所示:

Enter your code followed by ^X:
Bla
Blablabla
Bla^X
Thank you for entering your code

(第 2、3 和 4 行是用户输入的)

谁能解释我如何在用户输入 ^X 之前读取包括换行符在内的输入?谢谢

【问题讨论】:

  • ^X 的字符值为 24,如果有帮助的话。

标签: c++ string input newline


【解决方案1】:

^X 的 ASCII 码为 24,请尝试检查。

http://www.unix-manuals.com/refs/misc/ascii-table.html

【讨论】:

  • 那么我是否应该执行类似 do-while 循环的操作,逐个字符读取输入并检查是否未输入 ^X?
【解决方案2】:

最好让用户使用^D。
在大多数系统上,这会产生 EOF 字符并导致流关闭。

因此您不需要做任何特别的事情。
您只需阅读到输入流的末尾。因此,您的代码在读取标准输入和从文件中读取时可以完全相同。

【讨论】:

  • ^D 不是我的问题。此外,^D 与 HQ9+-ABC 没有任何关系
猜你喜欢
  • 1970-01-01
  • 2017-06-26
  • 2017-01-26
  • 1970-01-01
  • 2019-06-20
  • 2018-08-09
  • 2014-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多