类似函数peek();(来自C++)
Similar function peek( ); (from C++) in Ruby
是否有类似的peek();ruby中的(来自C++)函数?有其他选择吗?
我找到了一种方法。
使用StringScanner:
require 'strscan'
scanner = StringScanner.new(YourStringHere)
puts scanner.peek(1)
您也可以使用StringScanner扫描文件:
file = File.open('hello.txt', 'rb')
scanner = StringScanner.new(file.read)
也许您可以使用ungetc
。试着看看这里。
这是不相等的,但你可以得到相同的结果。
Enumerator#peek让您了解Enumerator的下一个值。IO#字节IO#字符将分别为字节流或字符流提供一个枚举器。由于您是用"rb"打开的,我认为您需要字节。
file = File.open('hello.txt', 'rb') # assume contains text "hellon"
fstream = file.bytes
fstream.next # => "h"
fstream.peek # => "e"
fstream.next # => "e"
...
当然,现在您有点拘泥于一次处理流上的字节。
相关文章:
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- 2D数组来自文本输入,中间有空格
- 通过继承类使用来自不同命名空间的运算符
- Cuda C++:设备上的Malloc类,并用来自主机的数据填充它
- C++:来自外部文件的Trivia
- 如何处理来自核心指南检查器的关于gsl::at的静态分析警告
- 针对遗留库的链接:来自预制makefile的-lgfortranbegin
- 如何在C++中正确引用来自不同类的类的对象?
- Qt中来自不同功能的按钮引用
- C++包含来自 #include "DevEngine/Core.h" 的错误
- Eigen c++ 三角形来自
- 来自 DLL 的函数调用 [表观调用的括号前面的表达式必须具有(指向-)函数类型]
- 来自 Android 应用程序内部的 boost 类型的 boost::wrapexcept<boost::system::system_error> 的未捕获异常
- 中止信号来自 C++ 中的中止(3) (SIGABRT)
- 如何多次询问来自QML对话框的输入?
- 如何强制 Thrift 仅接受来自本地主机的连接
- 使 ld 忽略来自 /etc/ld.so.conf 的目录
- 来自逆 vp 矩阵和相机位置的光线方向不正确
- 来自colPivHouseholderQr().solve的拟合相关性
- 真的没有来自 std::string_view 的 std::string 的显式构造函数吗?