这是我正在使用的一个示例程序。
while(split.good()){
split >>first;
split >>second;
word=first + second;
//cout<< static_cast<char> (word)<<endl;
vec.push_back(static_cast<char> (word));
}
第一个和第二个是int值。所以我想把向量的元素组合成一个完整的单词。
谢谢,
首先,您应该注意@AliciaBytes关于while
循环的建议。
要将vector
中的所有元素组合为一个单词,可以使用以下std::string
构造函数,该构造函数使用两个迭代器:
模板<class InputIt>basic_string(先输入、后输入,const分配器&alloc=Allocator());
传入vector
:的开始和结束iterator
const std::string s{std::begin(vec), std::end(vec)};
这将把vec
的每个元素添加到std::string
中。或者,您可以使用for
循环:
std::string s;
for (auto c : vec)
{
// Add each character to the string
s += c;
}
首先更改循环,检查.eof()
或.good()
是个坏主意,请参阅循环条件中的iostream::eof为什么被认为是错误的?了解更多信息。改为使用:
while(split >> first && split >> second)
检查读取值是否真的有效。
我误解了这个问题,所以下面的答案并不是真正想要的,请查看@Tas的答案
接下来,如果我理解正确,你想把整数转换成字符串吗?这有点不清楚,但看看std::to_string()
。也许你想要这样的东西:
while(split >> first && split >> second) {
word = first + second;
vec.push_back(std::to_string(word));
}