Racket, STDIN'den bir dize okuma yeteneğinden yoksun gibi görünüyor. TamamRacket'te gerçek standart girdi
$ racket
Welcome to Racket v6.4.
-> (define (s) (read-line))
, s
read-line
bir çağrı için bir diğer adıdır.
-> (printf "You entered: ~a\n" s)
You entered:
Hatası: dize yazdırılır, ancak Raket basışı beklemez/STDIN/EOF/EOL.
-> (define n (read))
a
-> n
'a
Arıza: Bu read
bir çağrı yapar ve EOF/EOL bekler, sonra n
atadığı ancak n
sembolü değildizea
'a
atanır.
-> (read-line)
""
Hatası: STDIN'den beklemez read-line
arayarak, sadece boş bir dize döndürür.
-> (read-string 5)
asdasdasdasd
"\nasda"
; sdasdasd: undefined;
; cannot reference undefined identifier
; [,bt for context]
Hatası: Sadece STDIN'den 5 bayt ve görünüşe eval
s gerisi okur ...?
-> (read-string 500000)
asdasd
asdasdaas
a
asdasd
asdasd
asdasd
Hatası: Tam 500000 bayt okundu kadar dönmez ve EOL üzerinde dönmez. Python'un EOL
olduğu zaman bir dizi döndüren input()
benzeri veya Factor adlı readln
benzeri, ham verileri current-input-port
'dan nasıl okuyabilirim?
Yararlı bilgiler, teşekkür ederim. Bir geçici çözüm var mı yoksa düzeltilecek mi? – cat
'(define (benim-oku-satırım) (let ([content (read-line)]) (if (string =? Content" ") (read-line) İçindekiler))) what is I şimdi kullanacağımı varsayalım. – cat