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

dimanwv

New member
30.03.2012
4
0
#1
доброго времени суток! Не могу решить проблему с параметрами функции 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

#3
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 прав.
 

Pingvin1

Well-known member
20.07.2009
50
0
#4
Из-за argv++; переход на следующий символ раньше вывода всего параметра!
 

dimanwv

New member
30.03.2012
4
0
#5
Да, спасибо. Это я так здесь написал. В реалии было как положено. Причина была такая. Я пишу в VS2010. Там _tmain(...) вместо main(...). И видимо она как то переопределена. Когда я убрал '_t' все заработало.