URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5649
[ Назад ]

Исходное сообщение
"преобразование из char в int"

Отправлено spyfox , 18-Авг-06 15:30 
у аргументов, передаваемых программе, тип char. как мне преобразовать численный аргумент в int? делаю так:
port = (int) argv[2];
printf("%d", port); - выводит "-1073745208", хотя 2 аргемент программе я передавал "80". (т.е. ./a.out 127.0.0.1 80). есть ли в языке c/c++ функция наподобие var_dump в php?

Содержание

Сообщения в этом обсуждении
"преобразование из char в int"
Отправлено Анд , 18-Авг-06 15:44 
port=atoi(argv[2]));

"преобразование из char в int"
Отправлено perece , 19-Авг-06 16:21 
>port=atoi(argv[2]));

sscanf лучше. если там галиматья какая-нть была, atoi вернет 0 и ты не определишь, правда ноль или еще чего

\^P^/


"преобразование из char в int"
Отправлено vitaly , 20-Авг-06 10:09 
>>port=atoi(argv[2]));
>sscanf лучше. если там галиматья какая-нть была, atoi вернет 0 и ты
>не определишь, правда ноль или еще чего

В случае с С++ ещё лучше использовать lexical_cast из boost (boost.org):

#include <boost/lexical_cast.hpp>
using boost::lexical_cast;
...
int port = lexical_cast<int>(argv[2]);