1
我目前有一個函數可以從流中讀取,直到找到預定義的stream-stopper。我目前能夠啓動並運行的唯一方法是使用std :: getline,然後將一個字符後跟一個換行符(在我的示例中爲char(3)
)作爲我的數據流阻止器。讀取iostream直到找到字符串分隔符
std::string readuntil(std::istream& in) {
std::string text;
std::getline(in, text, char(3));
return text;
}
有沒有什麼辦法可以達到同樣的效果,但是用更大的字符串作爲我的數據流?我不介意它必須跟着換行符,但我希望我的分隔符是一個大小不定的隨機字符串,以便流中發生更改的概率非常低。
任何想法如何實現這一目標?
的[?分割在C++字符串(http://stackoverflow.com/questions/236129/split-a-string-in-c) – ForceBru
@ForceBru不完全重複的可能重複,因爲我不想讀取超過分隔符的流,以便在另一個時間可以讀取分隔符之後的部分。 –
如果無法將整個文件加載到內存中,那麼高效地執行此操作並非無足輕重。您可以重複填充一個緩衝區並檢查,但是您需要允許緩衝區將您的搜索詞限制爲一半。 – Galik