Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ String.length()或String.size()返回带“的数字”\x";(\x5)_C++_String_Count_Int - Fatal编程技术网

C++ String.length()或String.size()返回带“的数字”\x";(\x5)

C++ String.length()或String.size()返回带“的数字”\x";(\x5),c++,string,count,int,C++,String,Count,Int,我试图获取int值中的字符数。为了到期,我将int转换为string,并采用.length()。从int到string的转换看起来不错,但当我检查.length()的值时,似乎有额外的字符(控制台显示有值“\x5”)。你知道哪里会有问题吗 我也尝试了.size(),得到了相同的结果。我以前使用过这个函数(.length()),实际上我收到了正确的结果 int main() { int roz = 703; string dlus = to_string(roz); string dlus1

我试图获取
int
值中的字符数。为了到期,我将
int
转换为
string
,并采用
.length()
。从
int
string
的转换看起来不错,但当我检查
.length()的值时,似乎有额外的字符(控制台显示有值“\x5”)。你知道哪里会有问题吗

我也尝试了
.size()
,得到了相同的结果。我以前使用过这个函数(
.length()
),实际上我收到了正确的结果

int main() {

int roz = 703;

string dlus = to_string(roz);

string dlus1 = dlus.size();

int dlu = atoi(dlus1.c_str());

}
结果:

dlus1 = "3" 

dlu = "3"

我相信你想要这样的东西:

int main()
{
    int number = 703;
    size_t count = std::to_string(number).length();
    std::cout << count;
}
intmain()
{
整数=703;
size_t count=std::to_string(number).length();

std::cout添加到这里的解释中,作为正在发生的事情。首先,我无法复制您的问题,但我有一个变体,它不会对clang和gcc发出警告,但仍然不是您想要的:

std::string dlus = std::to_string(roz);
dlus += dlus.size();
在这里,它使用一个可用的重载:

basic_string& operator+=( CharT ch );
它将整数静默地转换为字符。即使使用
-Wall
,它也不会被标记为坏

现在,这里就是。根据这条规则,此代码被标记为可能错误,并且它指示您应该使用
std::to_string
在追加数字之前将其正确转换为字符串


如果我们知道您使用的是哪种编译器,那么我们也可以找出此实例中使用的构造函数。

尝试size\u t dlus1=dlus.size();如果进行编译,您可能需要打开
-Wall
,因为为字符串指定一个数字不是有效的操作。因为
string::size()
返回一个数字,而不是字符串,您可以尝试以下操作:
string dlus1=to_string(dlus.size());
@zneak-clang为
size()
std::string
的赋值提供“错误:没有可行的转换”。