2015-12-10 39 views
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

write用於將S表達式序列化爲文件。它與read相反,它會將序列化的S表達式讀回列表,符號,字符串等。這意味着write將輸出所有會在源代碼中出現的內容。

如果你只是要輸出字符串到端口,使用display

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

或者雞肉,你可以使用printffprintf

(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 
+0

感謝sjamaan - 我感到困惑,因爲這個例子我所看過的都是使用寫入(這似乎是用來寫入文件的正確詞),並且顯示看起來更像是用於顯示到標準輸出/控制檯。 :) – masukomi