2

我在 erlang 中遇到了 ~n 的问题,尝试了 2 天将数据列表写入文件 io:format(file, "~s~n", [X])。

当然,我曾尝试使用 map 和 foreach 来遍历列表,但我仍然将所有内容放在 1 行而不是换行符上。该列表是从不同文件中读取的行列表。这是一个Windows操作系统。

我错过了什么吗?在 Windows 上执行此操作有什么替代方法吗?我一直在阅读许多教程并在这里寻求帮助,但我开始认为没有适合我的解决方案:/ 任何其他语言的一些非常简单的任务,即使是 haskell 也可以做到。

我可以将列表打印到控制台,它会像我阅读的文本一样显示。但是当我将此列表写入文件时,它全部显示在 1 行中。所以:

blah
blah
blah

变成

blah blah blah

我无法解决这个问题:(

4

2 回答 2

0

Windows 换行符是\r\n(回车和换行符)。

尝试:

io:format(File, "~s\r\n", [X]).
于 2013-01-23T00:48:21.553 回答
0

所以假设你有(在你的例子中):

Data = ["blah", "blah", "blah"].

然后:

io:format(File, "~s\r\n", [string:join(Data, "\r\n")]).

会在 Windows 上做你想做的事。坦率地说,“~n”应该是平台相关的,但它不适用于我的 Erlang 版本,所以“\r\n”是必要的,即

io:format(File, "~s~n", [string:join(Data, "\n")]).

应该工作,但没有。

于 2015-03-21T23:13:25.263 回答