C++ - to_string не работает на нескольких компиляторах (MinGW, MinGW64, TDM GCC) в Code::Blocks в Windows
Я в отчаянии. В Windows 7 с использованием Code::Blocks я установил около полудюжины вариантов MinGW / TDM-GCC, но я не могу получить to_string для преобразования моего int в строку, например:
std::cout << std::to_string(1) << ' - one' << std::endl;
выходы 1544173669
Я видел различные сообщения об ошибках о том, что to_string не работает в более ранних версиях MinGW (начиная с версии 4.7 - 4.9), но я пробовал последние версии безрезультатно. Я следовал этим инструкциям, чтобы установить последнюю версию TDM-GCC, соответственно изменив настройки цепочки инструментов и отладчика.
Все, что я прошу, это какое-то объяснение и решение, почему это не работает. Я могу предоставить любую дополнительную информацию по мере необходимости.
2 ответа
Это фактически напечатало это правильно для вас, плюс причины, вашей многосимвольной константы (которая определяется реализацией)...
std::cout << std::to_string(1) << ' - one' << std::endl;
Эта часть:
std::to_string(1)
печатные1
И эта часть:
' - one'
печатные544173669
для тебя.Это дало вам результат, который вы получили:
1544173669
,Предполагается, что ваш компилятор
-pedantic
) предупредить о выражении' - one'
, См. Предупреждение о многосимвольных константах и Что делают одинарные кавычки в C++ при использовании нескольких символов?
Вы используете двойные кавычки для представления строки, возможно, вы хотели написать:
std::cout << std::to_string(1) << " - one" << std::endl;
Я предполагаю, что вы имеете в виду " - один".
'' предназначены только для одиночных символов.