c++中getline的缓冲区大小限制
buffer size limit for getline in C++
我有一个简单的c++程序,它逐行读取文件。有些行超过20000个字符。下面的程序只能读取这些大行的4095个字符。我认为这是因为缓冲区大小的限制。如何解决阅读大行的问题?
// reading a text file
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main () {
string line;
ifstream myfile ("new.fasta");
if (myfile.is_open())
{
while ( getline (myfile,line) )
{
cout << line.length() << 'n';
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
在您的输入中尝试sed ${n}p | wc
,其中n
是所讨论的行号。我猜wc会报告它是4095个字符,或者在位置4096有一些特殊的东西。
std::getline
没有缓冲区大小限制。
相关文章:
- C++字符*缓冲区的大小
- Seg Fault Issue C++ (file IO / getline)
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- ostream过载时的缓冲区冲洗
- C++中的高效循环缓冲区,它将被传递给C样式数组函数参数
- Xaudio2在更改缓冲区或循环时弹出声音
- 为什么我在leetcode上收到AddressSanitizer:地址0x602000000058上的堆缓冲区溢出错误
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- 如何在cpp.中使用协议缓冲区存储大缓冲区/数组(char/int)
- 当用户键入分隔符时,停止getline()输入
- 多线程双缓冲区
- Android P-9.0.0_r53 Logcat主缓冲区超出定义大小
- 套接字读取后,我在缓冲区中看到意外输入
- getline() 的原型/库是什么;
- 错误 没有与参数列表匹配的重载函数"getline"实例
- std::带有自定义缓冲区的 iostream 不允许我写入
- 从Getline的字符缓冲区中分离EOF
- std::getline()是否完全清空缓冲区?
- c++中getline的缓冲区大小限制