Nan*_*nik 0 c++ ifstream end-of-line
我正在使用C++ ifstream和文本文件.我正在寻找每行结尾的位置,因为我需要n从行尾读取字符.
目前,我正在读取每个字节并测试它是否对应于Unix换行符(LF).
不幸的是,输入通常是长文本,我的方法并不快.
有没有更快的方法?
如果你正在寻找原始速度,我会记忆映射文件并使用类似的东西strchr找到换行符;
p = strchr(line_start, '\n');
Run Code Online (Sandbox Code Playgroud)
那么只要p不是NULL或内存区域中的第一个字符,你就可以p[-1]用来在换行符之前读取字符.
注意:如果文件可能包含'\0'字符,那么您应该使用memchr.实际上,这可能是合乎需要的,因为它允许您指定缓冲区的大小(内存区域).
| 归档时间: |
|
| 查看次数: |
898 次 |
| 最近记录: |