【发布时间】:2014-02-26 05:12:37
【问题描述】:
class Read
{
public:
Read(const char* filename)
:mFile(filename)
{
}
void setString()
{
while(getline(mFile, str, '.'))
{
getline(mFile, str, '.');
str.erase(std::remove(str.begin(), str.end(), '\n'), str.end());
}
}
private:
ifstream mFile;
string str;
};
int main()
{
Read r("sample.txt");
return 0;
}
我的最终目标是解析文件中的每个句子,因此我使用 getline 将分隔符设置为 '.'得到每个单独的句子。我想创建一个句子向量,但不确定如何做。
文件很大,所以会有很多句子。如何为每个句子创建一个向量?
它会只是向量 str吗?它怎么知道大小?
编辑:我添加了一行代码来删除 '\n' 编辑:摆脱 !eof
【问题讨论】:
-
它不会知道大小,当您
push_back一个字符串时,如果它的大小不够,向量将为新字符串分配更多内存。 -
那么,这就是你想要做的吗?显然,你有一个包含所有句子的
vector,而不是“每个句子都有一个vector”,但如果你真的想要后者,你需要指定分割句子的规则。