C++写一个带参数运行的程序

用C++写个例子,要求实现带参数运行。如:test.exe/user:someone/pwd:password要求只有用户和密码通过验证才执行程序,否则提示终止。... 用C++写个例子,要求实现带参数运行。
如:test.exe /user:someone /pwd:password
要求只有用户和密码通过验证才执行程序,否则提示终止。
展开
 我来答
匿名用户
推荐于2016-01-22
展开全部
#include <string.h>
#include <iostream>
#include <cstdlib>
using namespace std;

int main(int argc, char **argv)
{
if (argc < 3)
{
cout << "Usage : test.exe /user:someone /pwd:password" << endl;
exit(-1);
}

const char *user = "someone";
const char *pswd = "something";
char *u = argv[1], *p = argv[2];

while (*u++ != ':');
while (*p++ != ':');

if (strcmp(u, user) || strcmp(p, pswd))
{
cout << "User name or Password invalid! exiting.." << endl;
exit(-1);
}

cout << "Hello, " << user << endl;
system("PAUSE");
return 0;
}
chllulj
2009-06-19 · TA获得超过874个赞
知道小有建树答主
回答量:474
采纳率:0%
帮助的人:378万
展开全部
用户名和密码的定义可以在
#define USERID "tom"
#define PASSWORD "tom@1234"
这里修改
附上代码和执行结果

#include<stdio.h>
#include<string.h>
#define USERID "tom"
#define PASSWORD "tom@1234"

int main(int argc,char *argv[])
{
if(argc == 1)
{
printf("error: Valid ID and Password are required\nfor example: test.exe jack jack@1234\n");
return 0;
}
else if(argc == 3)
{
if (strcmp(argv[1],USERID) != NULL || strcmp(argv[2],PASSWORD) != NULL)
{
printf("error: Valid ID and Password are required\nfor example: test.exe jack jack@1234\n");
return 0;
}
}
printf("Authentication Pass..\n");

return 0;
}

执行结果

C:\Documents and Settings\ljlu\桌面\vctest\Debug>Text1.exe tom tom@1234
Authentication Pass..

C:\Documents and Settings\ljlu\桌面\vctest\Debug>Text1.exe tom tom@123
error: Valid ID and Password are required
for example: test.exe jack jack@1234

C:\Documents and Settings\ljlu\桌面\vctest\Debug>Text1.exe tm tom@1234
error: Valid ID and Password are required
for example: test.exe jack jack@1234

C:\Documents and Settings\ljlu\桌面\vctest\Debug>Text1.exe
error: Valid ID and Password are required
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-06-19
展开全部
把用户名和密码写在命令行参数是非常有安全隐患的做法。比如将密码写在脚本文件中,容易被别人攻破而被读取。历史上这么做曾导致了惨重的代价。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fanchangyong08
2009-06-19 · TA获得超过660个赞
知道小有建树答主
回答量:1096
采纳率:0%
帮助的人:0
展开全部
int main(int argc,char *argv[])
argc表示命令行参数的个数.
argv表示一个字符串数组,是所有的命令行参数.
不过默认的有一个参数,就是你当前执行的程序的路径.
所以你传入的参数从argv[1]开始.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
troy0215
2009-06-19 · TA获得超过231个赞
知道小有建树答主
回答量:310
采纳率:0%
帮助的人:307万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char* argv[])
{
if(strcmp(argv[1],"/user:someone")==0 && strcmp(argv[2],"/pwd:password")==0)
printf("hello world");
else
printf("wrong!");

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式