0

文字列をファイルに書き込もうとしていますが、毎回引用符で囲まれています。

私はもう試した

(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\""

私は現在チキンスキームで働いていますが、それは問題ではないと思います.

4

1 に答える 1

4

writeS 式をファイルにシリアライズするためのものです。readこれは、シリアル化された S 式をリスト、シンボル、文字列などに読み戻すの反対です。つまりwrite、ソースコードで発生するのと同じようにすべてを出力します。

文字列をポートに出力するだけの場合は、次を使用しますdisplay

(call-with-output-file file-path
  (lambda(output-port)
    (display "some text" output-port)))

または CHICKEN では、 or を使用でき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
于 2015-12-10T20:26:45.707 に答える