【发布时间】:2010-08-22 05:03:40
【问题描述】:
我正在使用此代码提取受密码保护的 RAR 文件。我正在使用std::system() 函数来调用RAR 命令。如果我在std::system() 函数中使用password,它就可以工作。但是当试图将密码作为参数传递时,它没有。例如,如果在此代码中如果我使用密码pwd,则会出现此错误:
"pwd 不是内部或外部命令、可运行程序或批处理文件。"
但如果我将代码更改为system("rar e -ppwd wingen.rar"),它就可以工作。
谁能解释我犯了什么错误?提前致谢!
这是我的代码:
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char **argv)
{
char pword[20];
printf("enter the pword : ");
gets(pword);
system(("rar e -p%s wingen.rar",pword));
getchar();
return 0;
}
【问题讨论】:
-
你不应该使用
gets()。手册页明确指出Never use gets(). [...] Use fgets() instead。如果gets()读取的字符数超过了缓冲区的大小,它将继续将它们存储到末尾,这是很危险的。 -
另外,阅读FAQ,尤其是上面写着的部分:“当您决定哪个答案对您最有帮助时,通过单击检查将其标记为已接受的答案答案左侧的方框轮廓。这让其他人知道您的问题得到了很好的回答。”
标签: c