gpt4 book ai didi

c++ - 为什么将整数分配给字符串会导致空白?

转载 作者:行者123 更新时间:2023-12-03 17:44:43 25 4
gpt4 key购买 nike

我正在尝试编写 Fizz Buzz,但遇到了意想不到的互动。如果我这样做 std::cout << i ,它会自动将 i(int) 转换为字符串并打印出来吗?但如果分配 i对于字符串变量,它会打印一个空白吗?我设法通过使用 std::to_string 来解决它,但我只是想知道为什么要打印 to_print打印空白而不是整数或抛出某种错误?

#include <iostream>
#include <string>

int main() {
for (int i = 1; i <= 10; i++) {
// prints i
std::cout << i;
}

std::cout << std::endl;

for (int i = 1; i <= 10; i++) {
std::string to_print;
to_print = i;
// prints blank rather than i
std::cout << to_print;
}
}

最佳答案

没有string::operator=(int) ,但有 string::operator=(char) ,它被选为最佳可行候选者。
因此,您将代码为 1..10 的单个字符分配给字符串,显然您的终端将其打印为空白。
尝试分配 65,它应该打印 A .

关于c++ - 为什么将整数分配给字符串会导致空白?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66640481/

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