Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Выделить динамическую память для 2-х мерного массива из N-строк http://www.cyberforum.ru/cpp-beginners/thread1096352.html
Помогите с задачей Задание: "Выделить динамическую память для 2-х мерного массива из N-строк след.вида:"
C++ Подсчитать количество символов в консоли Вот ввожу я данные в программу: Введите систему уравнений: 6.1x+ Тут присваиваю значения переменным: double и два char'a. Жмем Enter. И возвращаю курсор вот этим кодом: HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_SCREEN_BUFFER_INFO ci; GetConsoleScreenBufferInfo(hConsole, &ci); ci.dwCursorPosition.X=3; ci.dwCursorPosition.Y-=1; SetConsoleCursorPosition(hConsole,... 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++ Считайте текст и выведите на экран исходный текст, а затем только каждое третье предложение Помогите, пожалуйста!! очень нужно!! Считайте текст и выведите на экран исходный текст, а затем только каждое третье предложение. подробнее

Показать сообщение отдельно
Убежденный
Системный программист
 Аватар для Убежденный
14175 / 6190 / 981
Регистрация: 02.05.2013
Сообщений: 10,297
Завершенные тесты: 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.
Рекомендую именно этот вариант.
 
Текущее время: 16:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru