我越来越绝望了。在使用Code :: Blocks的Windows 7上,我已经安装了大约六种MinGW / TDM-GCC变体,但是我无法通过to_string将我的int转换为字符串,例如:
std::cout << std::to_string(1) << ' - one' << std::endl;
输出1544173669
我已经看到有关to_string的各种错误报告在早期版本的MinGW中没有工作(从v4.7 - 4.9之前的任何地方),但我已经尝试了最新版本无济于事。我已按照these instructions安装最新的TDM-GCC,正确更改了工具链和调试器设置。
我要求的是对某些原因不起作用的某种解释和解决方案。我可以根据需要提供任何进一步的信息。
答案 0 :(得分:3)
它实际上是为你正确打印的,加上原因,你的多字符常量(这是实现定义的) ......
std::cout << std::to_string(1) << ' - one' << std::endl;
此部分:std::to_string(1)
已打印1
此部分:' - one'
为您打印544173669
。
这给了你得到的输出:1544173669
。
假设您的编译器(假设-pedantic
)警告表达式' - one'
。请参阅Multi-character constant warnings和What do single quotes do in C++ when used on multiple characters?
你使用双引号来表示字符串,你想写的可能是:
std::cout << std::to_string(1) << " - one" << std::endl;
答案 1 :(得分:2)
我假设你的意思是“ - 一个”。
''仅适用于单个字符。