• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Получение Параметров Из Main

  • Автор темы dimanwv
  • Дата начала
D

dimanwv

доброго времени суток! Не могу решить проблему с параметрами функции main. Есть код
C++:
int _tmain(int argc, char* argv[20])
{
int i;
list<int> addresses;
cout<<"Size of argv: "<<sizeof argv<<endl;
for (i = 0; i < argc; i++)
{
cout << "argv[" << i << "] contains " << *argv <<" with size: "<<sizeof *argv<<" * "<< endl;
addresses.push_back((int)argv);
argv++;
}
for(list<int>::iterator it=addresses.begin();it!=addresses.end();it++)
cout<<*it<<endl;
}
но он выводит только ПЕРВЫЕ символы всех параметров и адреса смещены на четыре. Я ни как не могу получить полные параметры. Только первые символы
примерно так
argv[1] contains d with size: 4
.
.
>sp.exe wheel door pen green
argv[0] contains s with size: 4
argv[1] contains w with size: 4
argv[2] contains p with size: 4
argv[3] contains g with size: 4
 
Последнее редактирование:
W

Whatka

C++:
#include <iostream>
int main(int argc, char *argv[])
{
std::cout << "There were " << argc << " parameters\n";
for (int i = 0; i < argc; i++)
std::cout << "Parameter " << i << " was " << argv[i] << "\n";
}

а так Pingvin1 прав.
 
P

Pingvin1

Из-за argv++; переход на следующий символ раньше вывода всего параметра!
 
D

dimanwv

Да, спасибо. Это я так здесь написал. В реалии было как положено. Причина была такая. Я пишу в VS2010. Там _tmain(...) вместо main(...). И видимо она как то переопределена. Когда я убрал '_t' все заработало.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!