我试图写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
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句