我在程序FREAD:如何在二郎獲得用fread字符串沒有「」
{ok, [S]} = io:fread("entry: \n", "~s")
,但我得到{ok, "string"}
我希望得到公正的字符串,而不是引號。
所以我可以用它:
digraph:add_vertex(G, S)
,並獲得頂點的字符串,而不是「字符串」
我怎樣才能做到這一點?
我在程序FREAD:如何在二郎獲得用fread字符串沒有「」
{ok, [S]} = io:fread("entry: \n", "~s")
,但我得到{ok, "string"}
我希望得到公正的字符串,而不是引號。
所以我可以用它:
digraph:add_vertex(G, S)
,並獲得頂點的字符串,而不是「字符串」
我怎樣才能做到這一點?
這是一種幻覺。引號不是真的在那裏。外殼或其他顯示機制可以讓他們在一定的情境,以表示正在顯示的數據呈現,但在這種情況下,報價其實只是元數據:
這裏是你的情況:
1> {ok, [S]} = io:fread("entry: \n", "~s").
entry:
foo
{ok,["foo"]}
如果顯示個不折不扣不過,你會看到它是一個只有3個字符的列表:
2> io:format("~w~n", [S]).
[102,111,111]
ok
如果你問IO:格式/ 2到一般顯示的數據,用它詮釋的最好體現的數據雖然,它認爲'啊哈,這是一個字符串,我將作爲一個字符串「顯示它:
3> io:format("~p~n", [S]).
"foo"
ok
4>
字符串是顯然只是列出,所以在這這種情況下,決定要作出顯示爲一個字符串,或者作爲一個列表,由於列表字節都表示可打印字符,所以決定顯示爲字符串。添加一個不可打印的字符會改變行爲,如下所示:
5> io:format("~p~n", [[2|S]]).
[2,102,111,111]
ok
6>
如果要打印不帶引號的字符串,可以使用〜s格式:'io:format(「〜s〜n」,[「Hello」])。'' – Pascal
請問您的問題是否意味着您想要原子而不是字符串? –