functional-programming - 在 Erlang 中使用 fread 从用户/控制台读取多个单词
问题描述
我想读取多个单词并将它们存储在使用 Erlang 的变量中。当我使用 fread 记录一个字符串时,它只记录第一个单词。
1> {ok,[Message]} = io:fread("Type your message : ", "~ts").
Type your message : Hello world
{ok,["Hello"]}
2> world
所以“Hello”被保存到 Message 而不是“Hello world”。如何将这两个单词保存到变量消息中。
我正在寻找一个通用答案,以便我可以阅读很多单词而不仅仅是 2 个单词,所以请不要只发布 2 个单词的答案。
期望的输出
{ok,["Hello world"]}
解决方案
1> Line = io:get_line("Type your message: ").
Type your message: Hello world. Goodbye.
"Hello world. Goodbye.\n"
2> Line.
"Hello world. Goodbye.\n"
3> DesiredOutput = {ok, [string:strip(Line, right, $\n)]}.
{ok,["Hello world. Goodbye."]}
4> DesiredOutput.
{ok,["Hello world. Goodbye."]}
线:
行中的字符由换行符(或文件结尾)终止。如果 I/O 设备支持 Unicode,则数据可以表示代码点 > 255(latin1 范围)。
推荐阅读
- sql - 进行 SQL 查询以生成累积订阅者的最简单方法是什么?
- c - swprint 等效项 - 用 char 替换 wchar_t
- ruby-on-rails - ActiveRecord::StatementInvalid (PG::InsufficientPrivilege: ERROR: permission denied for relationship
- django - django makemigration 在子应用程序上抛出错误
- javascript - Firebase 在页面加载而不是在点击时加载数据 React
- clickhouse - 有没有办法为clickhouse创建UDF?
- c# - 使用数据库触发器时重置 Entity Framework Core 中的上下文
- java - 如何使用 parallelStream() 在数组上并行 NamedParameterJdbcTemplate 调用?
- android - Mapbox UI 类无法导入
- pandas - Pandas 数据框将列作为“方法”类转换为“系列”