4
我有一個簡單的C++程序,它逐行讀取一個文件。一些行包含超過20000個字符。以下程序只能讀取那些大行的4095個字符。我認爲這是因爲緩衝區大小的限制。閱讀大篇幅的解決方案是什麼?C++中getline的緩衝區大小限制
// 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;
}
您的文本文件在打到換行符之前有超過20K個字符? – NathanOliver
@NathanOliver是的,有時超過30K也 –
如果在聲明之後執行'line.reserve(20000);'會發生什麼?這將有助於縮小如果它是'getline'或字符串增長的問題。 – NathanOliver