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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kolganov
0 / 0 / 0
Регистрация: 16.07.2013
Сообщений: 17
#1

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

14.02.2014, 08:53. Просмотров 893. Ответов 1
Метки нет (Все метки)

Доброго времени.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "stdafx.h"
#include <iostream>
using namespace std;
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int i;
    for (i = 0; i < argc; i++)
        cout << argv[i] << '\n';
    return 0;
}
Среда: VS 2013.
Аргументы задал: 123 hello world
Выводит:

0165CDAC
0165CE92
0165CE9A
0165CEA6


Пробовал поменять тип argv[] с _TCHAR* на char* - не намного лучше (выводятся первые символы аргументов).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2014, 08:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод аргументов командной строки (C++):

Передача аргументов командной строки - C++
Здравствуйте. Подскажите пожалуйста, зачем в этом коде &quot;return 1;&quot;? #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; ...

Использование аргументов командной строки - C++
Всем доброго дня !!! Подскажите пожалуйста как связать этот код программы с командной строкой ? #include &lt;fstream&gt; #include...

Разбор аргументов командной строки - C++
Для Unix существуют специальные средства для разбора опций командной строки (функции GNU getopt и getopt_long). Хотелось бы узнать, есть ли...

Ввод аргументов командной строки - C++
Здравствуйте, такой вопрос: как задаются аргументы командной строки в си? нужно скомпилировать exe и запустить его через командную строку...

Обработка аргументов командной строки - C++
Не нашел где создать тему, поэтому решил здесь. 1. Интересуют стандарты для аргументов командной строки, то есть как обычно их...

Передача аргументов командной строки функции main() - C++
Добрый день Дана задача: Напишите программу, которая запрашивает пароль, задаваемый в команд- ной строке. Ваша программа не должна...

1
Убежденный
Системный программист
Эксперт С++
15637 / 7147 / 1131
Регистрация: 02.05.2013
Сообщений: 11,586
Записей в блоге: 1
Завершенные тесты: 1
14.02.2014, 09:50 #2
Проект, видимо, настроен на использование 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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2014, 09:50
Привет! Вот еще темы с ответами:

Работа со строками - обработка аргументов командной строки - C++
Помогите реализовать. Буду очень благодарен. Если первый аргумент командной строки-опция-d, то распечатать введен далее текст без...

Объясните смысл аргументов командной строки argc и argv - C++
Объясните смысл аргументов командной строки argc и argv.

Проверка формата ввода аргументов командной строки регулярными выражениями - C++
Часто при запуске программы на вход подаются дополнительные данные в определённом формате (взять хоть компиляцию с флагами). Валидация...

Вычислить сумму чисел, передаваемых программе в виде аргументов командной строки - C++
Всем доброго дня! Прошу помочь с решением задачи. Начальная задача стояла так: программа должна вычислять сумму чисел, передаваемых ей...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru