|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.12.2015, 02:34 | #1 |
Пользователь
Регистрация: 05.12.2013
Сообщений: 20
|
Язык С. Как получить, размер аргумента командной строки?
Здравствуйте. Как получить, размер аргумента командной строки? Например, размер 1-ого аргумента? Надо ли, для этого, копировать всю командную строку, во временный буфер, или нет?
Например, есть строка, введённая в консоли: F:\Project\Project.exe Temp В таком случае, 1-ым аргументом, является "Temp". Размер имени аргумента - 4 байта. Изучать язык C, стал только недавно, и просто, даже не представляю, с какой стороны подступиться к этой проблеме. Знаю, как это, написать на Ассемблере, но не знаю, как это, написать на C. Помогите пожалуйста!
Не судите строго. Я только учусь языку С.
Последний раз редактировалось Fixator; 14.12.2015 в 02:56. |
14.12.2015, 02:57 | #2 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
|
|
14.12.2015, 03:32 | #3 |
Пользователь
Регистрация: 05.12.2013
Сообщений: 20
|
Вот, я дубина. Есть же функция, для этого. Просто, привык всё делать своими руками.
_Bers Спасибо. Очень помогли.
Не судите строго. Я только учусь языку С.
|
14.12.2015, 07:02 | #4 |
Подтвердите свой е-майл
Регистрация: 12.11.2014
Сообщений: 470
|
Нельзя копировать то, размер чего ещё не известен. Исключение - класс, полностью инкапсулирующий хранение данных и операцию копирования, тогда один его экземпляр можно скопировать в другой, не заботясь о размере. Но размер данных и в этом случае должен быть известен копирующему члену до фактического копирования и даже до фактического выделения памяти для копируемых данных, просто использующий код и его разработчик может этого размера не знать.
|
14.12.2015, 07:48 | #5 | ||||
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Цитата:
Цитата:
Цитата:
Цитата:
Код:
|
||||
14.12.2015, 09:29 | #6 |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
Не по теме, но
Код:
|
14.12.2015, 12:23 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
14.12.2015, 13:08 | #8 | |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Цитата:
главное - известен указатель на строку argv[номер_параметра], а конец её - это ноль. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
|
14.12.2015, 13:36 | #9 |
Подтвердите свой е-майл
Регистрация: 12.11.2014
Сообщений: 470
|
Кто сказал?
1. Размер нуль-терминальной строки отлично считается. 2. При этом за размер буфера отвечает вызывающий код, соответственно он тоже обязан измерить размер до выделения памяти. Либо о размере должен позаботиться программист и зарезервировать буфер, которого хватит. Потому что ТС собрался сначала скопировать, а только потом измерить. Так вот, это всё равно, что сначала купить канистру, а потом в неё лить то ли один стакан, то ли сразу танкер, а что не влезет, вколоть в мозг. Последний раз редактировалось Stilet; 14.12.2015 в 13:46. |
14.12.2015, 13:41 | #10 | ||
Пользователь
Регистрация: 05.12.2013
Сообщений: 20
|
Цитата:
Цитата:
Синтаксис сбивает с толку, до такой степени, что бошка отказывается работать.
Не судите строго. Я только учусь языку С.
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как посмотреть работу программы в режиме командной строки | moreman | Помощь студентам | 21 | 24.02.2015 17:08 |
Получить строку из "Командной Строки" | Janger | Общие вопросы Delphi | 5 | 05.06.2014 08:03 |
Как получить размер dds-файла? | RibGeDx | Общие вопросы Delphi | 8 | 16.03.2013 20:56 |
Как получить размер базы данных | Greek9000 | Общие вопросы .NET | 1 | 02.08.2011 13:49 |
Как получить размер строки типа LPCWSTR? | Gtx541 | Общие вопросы C/C++ | 1 | 30.05.2010 14:18 |