类型转换

hotspring110 2011-07-07 02:52:50
int main(int argc, char ** argv)
{
..................
}
其中接受3个参数,我们需要第三个参数 也就是argv[2]
现在sleep(unsigned int par);
将argv[2]作为sleep的参数,如何转换。
用strtoul 还是strtol,或者谁有更好的办法
...全文
90 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2011-07-07
  • 打赏
  • 举报
回复
#include <windows.h>
...
if (argc>=3) {
if (1==sscanf(argv[2],"%d",&t) {
if (1<=t && t<=3600000) {
printf("Sleep %d ms...\n",t);
Sleep(t);
}
}
}
hotspring110 2011-07-07
  • 打赏
  • 举报
回复
暂时就先用strtoul这个函数了 ,感觉比atoi 要安全点!
hotspring110 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 q191201771 的回复:]
strtoul相对atoi的优势 在于它可以指定进制
比如一个 "0x1234"的字符串

用strtoul可以转
用atoi 貌似不行
[/Quote]

就想叫yoko 2011-07-07
  • 打赏
  • 举报
回复
strtoul相对atoi的优势 在于它可以指定进制
比如一个 "0x1234"的字符串

用strtoul可以转
用atoi 貌似不行
hotspring110 2011-07-07
  • 打赏
  • 举报
回复
unsigned long int time= strtoul(argv[2],NULL,10);
int times = atoi(argv[2]);

这2个哪个好? 还有其他更好的吗 ?
hotspring110 2011-07-07
  • 打赏
  • 举报
回复
我用strtoul程序也没什么问题,只想需要一个更好的解决方案,总感觉我的这个不是很安全。将char ** 转换为 unsigned int 类型,在好好看看!
「已注销」 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 c395565746c 的回复:]

int t = 0;

ssanf(argv[2], "%d", &t);
[/Quote]
不好意思,打错了。。。是sscanf不是ssanf
「已注销」 2011-07-07
  • 打赏
  • 举报
回复
int t = 0;

ssanf(argv[2], "%d", &t);
bdmh 2011-07-07
  • 打赏
  • 举报
回复
atoi,char转为int
就想叫yoko 2011-07-07
  • 打赏
  • 举报
回复
用 atoi

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧