Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Аргументы командной строки


Автор: miceZipper 27.5.2009, 19:29
Есть код
Код

int main(int argc,char *argv[]){
std::cout << argv[1];
}

Если вызвать эту прогу: "прога.ехе АРГ1", то она выведет: "АРГ1"

Если же сделать так:

Код

int main(int argc,short int *argv[]){
std::cout << *argv[1];
}


, то она выведет не "АРГ1", а 29537.

Это почему так происходит? Ведь указатель же, это число!

Автор: zim22 27.5.2009, 19:33
Цитата(miceZipper @  27.5.2009,  19:29 Найти цитируемый пост)
 Ведь указатель же, это число!

откуда такие сведения?
Код

short int *argv[] == short int **argv

argv - это указатель на указатель на short int
т.к. вы туда передаёте строку, а не число, то компилятор как может - так его и интерпретирует. т.е. как число.

Цитата(miceZipper @  27.5.2009,  19:29 Найти цитируемый пост)
 то она выведет не "АРГ1", а 29537.

попробуйте так:
Код

std::cout << (char*)argv[1];

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)