在C++中转换int为等效的最简单方法是什么?string我知道两种方法.有没有更简单的方法?
(1)
int a = 10;
char *intStr = itoa(a);
string str = string(intStr);
Run Code Online (Sandbox Code Playgroud)
(2)
int a = 10;
stringstream ss;
ss << a;
string str = ss.str();
Run Code Online (Sandbox Code Playgroud) 如果我有一个std::ostringstream被调用的对象oss,我知道我可以std::cout << oss.str()打印出字符串.但这样做oss.str()会导致返回的字符串被复制.有没有办法直接打印底层streambuf?
提前致谢!
这个问题的主要原因是我想测试我的运算符重载器,而不必在单元测试期间进行用户输入。我怎样才能最好地实现这一目标?
std :: istream & operator>>( istream &in, Fruit & f )
{
char temp[31];
in >> temp;
f.name = new char[strlen(temp) + 1];
strcpy(f.name, temp);
for( int i = 0; i < CODE_LEN; i++ )
in >> f.code[i];
return in;
}
std :: ostream & operator<<( ostream &out, const Fruit & f )
{
out << setiosflags(ios::left) << setw(MAX_NAME_LEN) << f.name
<< " ";
for( int i = 0; i < CODE_LEN; i++ ) // why is this necessary? …Run Code Online (Sandbox Code Playgroud) 我一直在使用stringstream转换Integer到String,但后来我意识到同样的操作是可以做到的ostringstream.
当我使用.str()它们之间有什么区别?此外,是否有更有效的方法将整数转换为字符串?
示例代码:
//using ostringstream
ostringstream s1;
int i=100;
s1<<i;
string str_i=s1.str();
cout<<str_i<<endl;
//using stringstream
stringstream s2;
int i2=100;
s2<<i2;
string str_i2=s2.str();
cout<<str_i2<<endl;
Run Code Online (Sandbox Code Playgroud) 我想知道如何在C++中使用java toString方法将数据类型转换为字符串.例如,用什么方式可以在C++中使用以下代码.
public byte[] myMsg = new byte[Length];
public int intValue;
public double doubleValue;
String out1 = new String();
String out2 = new String();
String out3 = new String();
out1 += ("X; " + Long.toString((intValue& 0x1fffffff) + 0x100000000L, 16).substring(1).toUpperCase() + ";");
out2 += (" " + (Integer.toString((this.myMsg[i] & 0xff) + 0x100, 16).substring(1)).toUpperCase());
out3 += ("; " + Double.toString(doubleValue));
Run Code Online (Sandbox Code Playgroud)