Форум программистов, компьютерный форум, киберфорум
Наши страницы

Вывод аргументов командной строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выделить динамическую память для 2-х мерного массива из N-строк http://www.cyberforum.ru/cpp-beginners/thread1096352.html
Помогите с задачей Задание: "Выделить динамическую память для 2-х мерного массива из N-строк след.вида:"
C++ Подсчитать количество символов в консоли Вот ввожу я данные в программу: Введите систему уравнений: 6.1x+ Тут присваиваю значения переменным: double и два char'a. Жмем Enter. И возвращаю курсор вот этим кодом: HANDLE... http://www.cyberforum.ru/cpp-beginners/thread1096294.html
C++ Ввод предложения в консольном приложении: в переменную попадает только первое слово
Есть код void main() { setlocale(LC_ALL, "rus"); SetConsoleCP(1251); SetConsoleOutputCP(1251); string str; cin >> str;
Найти сумму N вводимых пользователем чисел в диапазоне от -100 до 15 C++
Найти сумму N вводимых пользователем чисел в диапазоне от -100 до 15.
C++ Найдите самое длинное слово заданного предложения и укажите номер позиции, с которого оно начинается http://www.cyberforum.ru/cpp-beginners/thread1096274.html
Очень нужна помощь!! Найдите самое длинное слово заданного предложения и укажите номер позиции, с которого оно начинается. При наличие нескольких слов выведите их в алфавитном порядке.
C++ Считайте текст и выведите на экран исходный текст, а затем только каждое третье предложение Помогите, пожалуйста!! очень нужно!! Считайте текст и выведите на экран исходный текст, а затем только каждое третье предложение. подробнее

Показать сообщение отдельно
Убежденный
Ушел с форума
Эксперт С++
15793 / 7230 / 1138
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
14.02.2014, 09:50
Проект, видимо, настроен на использование Unicode.
Значит, TCHAR - это wchar_t, а _tmain - это wmain и командная строка
тоже приходит в Unicode, в "широких" символах (2 байта на символ).
Ну а дальше Вы пытаетесь с ней работать, как с char-строкой, из-за
чего возникают кракозябры.

Пара ссылок по теме:

main: Program Startup
http://msdn.microsoft.com/en-us/library/6wd819wh.aspx

Using wmain Instead of main
http://msdn.microsoft.com/en-us/library/xyk2axs5.aspx

Решение 1.
Изменить cout на wcout. Плюсов особо никаких, если в настройках
проекта поставить Multi-Byte Character Set, все снова перестанет работать.

Решение 2.
Изменить TCHAR на char, а _tmain на main.
Так будет работать, но командная строка придет в ANSI-кодировке.
Это не всегда хорошо с точки зрения переносимости проекта на
другие локализации (как и ANSI-кодировки в целом).

Решение 3.
Забыть вообще про аргументы main и использовать платформенное
средство - GetCommandLineW/CommandLineToArgvW.
Рекомендую именно этот вариант.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.