我认为这很简单,但它存在一些困难.如果我有
std::string name = "John";
int age = 21;
Run Code Online (Sandbox Code Playgroud)
如何组合它们以获得单个字符串"John21"?
如何使用C++将unsigned short转换为string?我有两个未签名的短变量:
unsigned short major = 8, minor = 1;
Run Code Online (Sandbox Code Playgroud)
我想加入他们的字符串,看起来像:
std::string version = major + "." + minor;
Run Code Online (Sandbox Code Playgroud)
我该怎么做?将提供一个小样本代码.
谢谢
我试图创建一个指向文件的字符串,并收到此错误:
... / testApp.cpp:75:错误:类型为'const char *'和'const char [5]'的无效操作数为二进制'operator +'
这是有问题的行:
string path = "images/" + i + ".png";
Run Code Online (Sandbox Code Playgroud)
这似乎是一个相当简单的问题,但令我困惑。我还包括了字符串标题:
#include <string>
using namespace std
Run Code Online (Sandbox Code Playgroud) 所以我想将一个整数转换成一个字符串但是使用itoa不是标准的,所以通过我的研究我认为最好的方法是使用OStringStream.这是一些伪代码:
#include <iostream>
#include <cmath>
#include <cstdlib>
std::string plusMinus(int x) {
std::ostringstream x_str;
// more code here obviously
}
int main(int argc, const char * argv[])
{
// some cin/cout functions here
}
Run Code Online (Sandbox Code Playgroud)
我在"std :: ostringstream"上遇到错误:"未定义模板的隐式实例化".这是什么意思?我尝试在顶部放置"using namespace std;"但它没有任何效果.
我的问题是我不知道如何将int值转换为char数组char* m_value.我尝试使用itoa但它不起作用.itoa(m_val, m_wartosc, 10);也许有其他功能可以做到这一点?
Main.cpp的
int main(int argc, char *argv[])
{
LargeNumber l1;
LargeNumber l3(172839); //how to convert this int to char*
return 0;
}
Run Code Online (Sandbox Code Playgroud)
LargeNumber.h
class LargeNumber{
public:
LargeNumber()
{
m_array = "0"; //zero for no arg.
}
LargeNumber(int val):m_val(val)
{
itoa(m_val, m_array, 10); //doesn't work
//sprintf(m_array, "%d", m_val);
}
LargeNumber(const LargeNumber& p):m_array(p.m_array)
{ } //copy constructor
~LargeNumber(){
delete []m_array; //for object with new
}
public: //should be private
int m_val;
char* m_array;
};
Run Code Online (Sandbox Code Playgroud) 我使用以下switch语句得到一些非常奇怪的行为:
string recognise_mti(int mti_code)
{
switch(mti_code)
{
case 1100:
case 1101:
return (mti_code + " (Auth. Request/Repeat)"); break;
default:
return (mti_code + " (NOT RECOGNISED)"); break;
}
}
Run Code Online (Sandbox Code Playgroud)
它似乎根据输入整数返回各种各样的东西.它可能会变成一个愚蠢的错误,但到目前为止,我无法识别它.感谢任何帮助.
可能重复:
替换itoa()将整数转换为字符串C++?
如何在C++中将数字转换为字符串,反之亦然
将int附加到std :: string
我想将整数转换为字符串,任何一个帮助我进行这些转换?
itoa(*data->userid,buff1,10);
itoa(*data->userphone,buff2,10);
Run Code Online (Sandbox Code Playgroud) 我想以某种格式写一个文件的时间戳.
有没有办法使用修饰符创建一个新的字符串(请参阅下面的printf代码)?或者是否有另一种方法在TextStream中使用字符串修饰符?
printf("%02d-%02d-%02d_%02d:%02d:%02d.%02d\n",
st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond, st.wMilliseconds);
Run Code Online (Sandbox Code Playgroud) 我是c ++的初学者,所以答案可能很明显.
我有两个函数 - 一个能够将int转换为字符串,另一个能够将double转换为字符串.然而,将这两者合二为一,会更优雅.我已尝试使用下面的代码,但它产生一个错误:'number'未在此范围内声明
string number_into_string (void* data, int psize)
{
if (psize == sizeof(int))
{
int* number; number =(int*)data;
}
if (psize == sizeof(double))
{
double* number; number = (double*)data;
}
ostringstream convert;
convert << number;
string str = convert.str();
return str;
}
int main()
{
double x =1000;
int y = 5;
string str_x = number_into_string(&x, sizeof(x));
string str_y = number_into_string(&y, sizeof(y));
}
Run Code Online (Sandbox Code Playgroud) c++ ×9
string ×3
int ×2
c ×1
case ×1
char ×1
constructor ×1
namespaces ×1
pointers ×1
stdstring ×1
writetofile ×1