gpt4 book ai didi

c++ - to_string().length() 在 C++ 中给出不正确的结果。谁能解释一下这种行为?

转载 作者:行者123 更新时间:2023-12-01 14:52:49 33 4
gpt4 key购买 nike

#include <iostream>
using namespace std;

int main()
{
int n,t;
cin>>n;

for(int i=0;i<n;i++)
{
cin>>t;
cout<<to_string(t).length();
}
return 0;
}

测试用例:
Input-123//正确
输出-3

input-111111111111111111111111//不正确
输出-10

Input-11111//不正确
输出-1010

最佳答案

这很可能是由 cin 读取尽可能多的 int 引起的,当您将 111111111111111111111111 分配给 t 时,请注意,111111111111111111111111 超出了 int 的容量大小,甚至超出了 long long int 的容量。然后至于修复输出,将 endl 语句链接到输出语句的末尾,如下所示:
cout << to_string(t).length() << endl;
如果您坚持让您的代码为超出容量的整数工作,那么您可能需要查看一些算术库,例如
GMP Arithmetic Library

关于c++ - to_string().length() 在 C++ 中给出不正确的结果。谁能解释一下这种行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61552793/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com