我试着编写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;
}
}
CharT
的赋值运算符,但没有做同样事情的构造函数。如果有任何问题,两者都应该有相同的问题。 - Yksisarvinenstr = '\0';
- 尽管我承认这是一个相当脆弱的理由。 - StoryTeller - Unslander Monica