我有一个简单的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没有缓冲区大小限制.