2012-04-07 6 views
2

비슷한 peek()가 있습니까? (C++에서) 루비 함수? 이 작업을 수행 할 수있는 대안은 무엇입니까?비슷한 기능 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) 
+1

C++에 익숙하지 않은 사람들을 위해 'peek'은 입력을 사용하지 않고 다음 문자를 반환합니다. – Pubby

답변

1

은 아마 당신은 ungetc를 사용할 수 있습니다. here을보십시오.

동일한 것은 아니지만 동일한 결과를 얻을 수 있습니다.

+0

그래서 'getc'를 사용한 다음 'ungetc'를 사용합니다. –

+0

네, 그렇게 할 수 있습니다. (그리고 귀하의 필요에 맞는 답을 수락하는 것을 잊지 마십시오 : P) – dash1e

1

Enumerator#peek 열거 자의 다음 값을 살펴 보겠습니다. IO#bytesIO#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" 
... 

는 지금은 좀 스트림에서 한 번 처리시 바이트와 함께 붙어 있습니다.

관련 문제