我如何将字符串写入方案中没有引号的文件
how do i write a string to a file without quote marks in scheme
我正在尝试将一个字符串写入一个文件,但每次我这样做时它都有引号。
我试过了
(call-with-output-file file-path
(lambda(output-port)(write "some text" output-port)))
和
(let ((p (open-output-file file-path)))
(write "some text" p)
(close-output-port p))
但在这两种情况下我都期望 "some text"
但得到 "\"some text\""
我目前在 chicken-scheme 工作,但我认为这不重要。
write
用于将 S 表达式序列化到文件中。它与 read
相反,它将序列化的 S 表达式读回列表、符号、字符串等。这意味着 write
将像在源代码中一样输出所有内容。
如果你只想输出一个字符串到一个端口,使用display
:
(call-with-output-file file-path
(lambda(output-port)
(display "some text" output-port)))
或者在 CHICKEN 中,您可以使用 printf
或 fprintf
:
(call-with-output-file file-path
(lambda(output-port)
(fprintf output-port
"Printing as s-expression: ~S, as plain string: ~A"
"some text"
"some other test")))
这会将以下内容打印到文件中:
Printing as s-expression: "some text", as plain string: some other text
我正在尝试将一个字符串写入一个文件,但每次我这样做时它都有引号。
我试过了
(call-with-output-file file-path
(lambda(output-port)(write "some text" output-port)))
和
(let ((p (open-output-file file-path)))
(write "some text" p)
(close-output-port p))
但在这两种情况下我都期望 "some text"
但得到 "\"some text\""
我目前在 chicken-scheme 工作,但我认为这不重要。
write
用于将 S 表达式序列化到文件中。它与 read
相反,它将序列化的 S 表达式读回列表、符号、字符串等。这意味着 write
将像在源代码中一样输出所有内容。
如果你只想输出一个字符串到一个端口,使用display
:
(call-with-output-file file-path
(lambda(output-port)
(display "some text" output-port)))
或者在 CHICKEN 中,您可以使用 printf
或 fprintf
:
(call-with-output-file file-path
(lambda(output-port)
(fprintf output-port
"Printing as s-expression: ~S, as plain string: ~A"
"some text"
"some other test")))
这会将以下内容打印到文件中:
Printing as s-expression: "some text", as plain string: some other text