在Windows上使用换行符

时间:2013-01-22 23:30:07

标签: erlang

我一直在使用erlang中的~n,尝试了2天将数据列表写入文件,io:format(文件,“~s~n”,[X])。< / p>

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

我错过了什么吗?有没有办法在Windows上做这个?我以前一直在阅读很多教程,并在这里寻求帮助,但我开始认为我没有解决方案:/任何其他语言的一些非常简单的任务,甚至haskell都可以做到。

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

blah
blah
blah

变为

blah blah blah

我无法解决这个问题:(

2 个答案:

答案 0 :(得分:0)

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

尝试:

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

答案 1 :(得分:0)

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

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

然后:

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

将在Windows上执行您想要的操作。 坦白地说&#34; ~n&#34;应该是平台相关的,但它不适用于我的Erlang版本,所以&#34; \ r \ n&#34;是必要的,即

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

应该有用,但不是。