我正在尝试编写 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;
}
}
Run Code Online (Sandbox Code Playgroud)
rus*_*tyx 12
没有string::operator=(int),但有string::operator=(char),它被选为最佳可行候选者。
因此,您将代码为 1..10 的单个字符分配给字符串,显然您的终端将其打印为空白。
尝试分配 65,它应该打印A.
| 归档时间: |
|
| 查看次数: |
287 次 |
| 最近记录: |