将integer转换为函数参数的字符串
convert integer to string for function parameter
我有一个函数,它接受一个字符串参数,并且有一个整数变量,然后我应该将其转换为字符串,然后将其传递给我使用此代码的函数,但由于ostringstream用于I/O,所以它不起作用。
ostringstream ostr;
while (.....)
{
regnum++;
ostr<<regnum;
grph.addlastname(ostr.str());
}
例如,它将12345传递给函数而不是5,我该怎么办?
这是真的-有很多类似的问题可以解决"最好的方法是什么?"但我认为,在回答"为什么这不起作用?"的问题时,OP需要学习一些东西
因此:
您的stringstream
有一个内部状态,在循环过程中,您总是附加一个新的数字,但以前的数字仍在流中!您可以通过使stringstream
作用域成为循环的本地作用域来解决此问题,即在循环内而不是在循环外声明它
(不过,std::to_string
仍然是解决这个特定问题的更好方案。)
除了一件事,一切都很好,参见:
ostringstream ostr;
while (.....)
{
regnum++;
ostr<<regnum;
grph.addlastname(ostr.str());
}
你在while之外声明你的ostr,while第一次运行时,它会向ostr添加"1",第二次,因为它是同一个"ostringstream"变量,它会添加"2",所以你的字符串现在将是"12"。。。
解决方案:声明ostringstream-ostr,在while中,使用std::to_string,或者每次while结束时执行ostr.clear()。(最好的方法是在你的时间内声明你的ostr)
相关文章:
- 如何使用Luacneneneba API正确读取字符串和表参数
- 如何使用字符串文字作为宏参数
- 如何将可变长度参数联接为字符串
- 如何使用字符串find_first_of缓冲区形式(size_t n 参数)
- 具有字符串化的可变参数宏的现代/通用方法
- C++ 构造函数参数:字符串、整数、整数、整数
- 当C 中的系统调用conconculables时,参数字符串中的字符损失
- 模板参数字符串与整数
- #define 参数字符串化,但宽字符串 L " instead of "
- std::getline 用于 ifstream,使用参数字符串或 char *
- 通过参数字符串化宏调用模板函数
- 可变参数字符串比较
- 为什么位集的构造函数有参数字符串::charT 零,字符串::charT one)
- c++中stdbind在带有参数(字符串)的函数中的用法
- 当使用字符变量作为参数(字符串转换为字符)时,Std::rename()文件将不起作用
- C/ c++预处理器中的宏参数字符串化为宽字符串字面值
- 如何比较Visual C++中的参数字符串
- C++错误:推断出参数'T'字符串与常量字符的冲突类型 *
- 传递参数字符串,其中包含空格和引号
- 函数参数字符串通过引用传递