2

同様のpeek();はありますか?(C ++から)rubyの関数?これを行うための代替手段はありますか?

私はこれを行う方法を見つけました。

StringScannerを使用します。

require 'strscan'
scanner = StringScanner.new(YourStringHere)
puts scanner.peek(1)

StringScannerを使用して、ファイルをスキャンすることもできます。

file = File.open('hello.txt', 'rb')
scanner = StringScanner.new(file.read)
4

2 に答える 2

2

多分あなたは使うことができますungetcここを 見て みて ください.

等しくはありませんが、同じ結果が得られます。

于 2012-04-07T03:43:18.167 に答える
1

Enumerator#peekを使用すると、Enumerator の次の値を確認できます。IO#bytes IO#charsは、それぞれバイト ストリームまたは文字ストリームの列挙子を提供します。「rb」で開いたので、バイトが必要だと思います。

file = File.open('hello.txt', 'rb') # assume contains text "hello\n"
fstream = file.bytes

fstream.next # => "h"
fstream.peek # => "e"
fstream.next # => "e"
...

もちろん、ストリーム上で一度に 1 バイトずつ処理するのは面倒です。

于 2012-04-07T16:19:47.523 に答える