2011-01-10 2 views
2

Мне нравится, как getline (cin, x) работает для чтения вещей. В отличие от cin >> x, это не испортит буфер и, похоже, позволяет европейским символам, таким как á, é и т. Д. Мне просто интересно, есть ли эквивалент вывода, потому что cout < < x не позволяет европейским персонажам, и, возможно, есть лучший вариант.Есть ли выход, эквивалентный getline (cin, x) на C++?

+2

Подождите, какая платформа, C++ компилятор и библиотеки? Это не должно быть так. – ephemient

+1

Какая платформа (ОС, компилятор, версия libc, приложение терминала)? Обработка символов, отличных от ASCII, очень специфична для платформы. –

+0

Windows Vista (ouch, а не мой компьютер) и VC++ 2010 Express, если это помогает – vemv

ответ

2

Вы можете попробовать std::wcout, он предназначен для поддержки широких струн символов и должен отлично работать с европейскими символами. Он имеет такой же использование как станд :: соиЬ, но вам понадобится широкий строковый литерал префикс «L»:

std::wcout << L"My cool string."; 
+4

Это 'L' не является макросом. Он встроен в язык. – sbi

+0

Изменен макрос в unicode литерал, так как это то, что он означает. –

+3

Nitpick: Это не означает Unicode, это означает широкий характер. В Unicode есть еще одна широкоформатная кодировка. – AProgrammer

Смежные вопросы