关于c ++:将整数转换为字符串作为函数参数

convert integer to string for function parameter

本问题已经有最佳答案,请猛点这里访问。

我有一个接受字符串参数的函数,我有一个整型变量,然后我应该把它转换成字符串,然后把它传递给那个函数,我使用了这个代码,但是由于ostringstream是用于I/O的,所以它不起作用。

1
2
3
4
5
6
7
ostringstream ostr;
while (.....)
{
regnum++;
ostr<<regnum;
grph.addlastname(ostr.str());
}

例如,它将12345传递给函数而不是5,我应该怎么做?


这是真的-有很多类似的问题可以解决"什么是最好的方法?"但我认为,在回答"为什么这不起作用"这个问题时,OP需要学习一些东西。

因此:

您的stringstream有一个内部状态,在循环过程中,您总是追加一个新的数字,但之前的数字仍在流中!您可以通过将stringstream作用域设置为循环的局部,即在循环内部而不是在循环外部声明它来解决这个问题。

(不过,对于这个特定的问题,std::to_string仍然是更好的解决方案。)


一切都很好,除了一件事,见:

1
2
3
4
5
6
7
ostringstream ostr;
 while (.....)
{
 regnum++;
 ostr<<regnum;
 grph.addlastname(ostr.str());
}

您在while之外声明您的ostr,第一次运行时,它向ostr添加"1",第二次,因为它是相同的"ostringstream"变量,它添加"2",所以您的字符串现在将为"12"…

解决方案:在OTFLE OSTR中声明OTSTREST OSTR,STD::toSype字符串,或者每次结束时执行OSTR.Cube()。(我在你的时间内宣布你的鸵鸟的最好方式)