我正在从文本文件中的一行读取字符串,由于某种原因,代码将无法读取整个文本文件。它读取到某个随机点,然后停止并从一行或几行中删除几个单词。这是我的代码。
string total;
while(file >> word){
if(total.size() <= 40){
total += ' ' + word;
}
else{
my_vector.push_back(total);
total.clear();
}
这是一个文件的例子
该计划证明,所有带有Informed-Sport徽标的营养补品和/或成分均已通过世界一流的运动反兴奋剂实验室LGC测试过违禁物质。选择使用补品的运动员可以使用上面的搜索功能来查找已通过此严格认证过程的产品。
它读取直到“通过”为止,而忽略了最后四个单词。
我希望输出是整个文件。不只是其中的一部分 这就是我打印矢量的方式。
for(int x = 0; x< my_vector.size(); ++x){
cout << my_vector[x];
}
您在这里错过了两件事:
第一:如果total.size() is not <= 40 i.e >40
它移至其他部分,则您只是在其中进行更新,my_vector
而忽略了word
从文件中读取的当前数据。您实际上需要更新total
after total.clear()
。
第二:当循环终止时,您也忽略其中的数据word
。您需要考虑push_back()
向量中的问题(如果需要,取决于您的程序逻辑)。
因此,总体而言,您的代码将如下所示。
string total;
while(file >> word)
{
if(total.size() <= 40)
{
total += ' ' + word;
}
else
{
my_vector.push_back(total);
total.clear();
total += ' ' + word;
}
}
my_vector.push_back(total);//this step depends on your logic
//that what u actually want to do
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句