关于用批处理命令给C++主函数传递参数的问题

我的c++代码是这样写的:#include<iostream>usingnamespacestd;intmain(inta){intb,sum;cout<<"请输入一个整... 我的c++代码是这样写的:
#include<iostream>
using namespace std;
int main(int a)
{
int b,sum;
cout<<"请输入一个整数:";
cin>>b;
sum=a+b;
cout<<a<<"+"<<b<<"="<<sum;
return bool(a);
}
编译出test.exe

批处理命令是这样写的:
@echo off
set filepath=F:\platform\
cd /d %filepath%
@echo on
test.exe 5
echo %errorlevel%
pause
但运行结果不正确,请高手指点.(如图)
展开
 我来答
新新5F602
2012-07-12 · TA获得超过255个赞
知道小有建树答主
回答量:223
采纳率:0%
帮助的人:209万
展开全部
int main(int a)
main函数的参数与普通函数不同的。

应该定义为int main(int argc, char *argv[])
main是个函数,argc、argv是输入的参数,但是和一般的函数又不太一样,这里argc(argument count :参数个数)argv(argument vector(大概是):指针数组,指向参数内容)。

argc表示参数个数,argv存储具体的参数
默认情况下,argc至少为1,argv[0]存储着程序路径如:E:\test.exe

所以你的程序应该改为如下:
#include<iostream>
using namespace std;
int main(int argc, char *argv[])
{
int b,sum;
if (argc < 2)
{
return 0;
}
cout<<"请输入一个整数:";
cin>>b;
sum = atoi(argv[1]) + b;
cout<<argv[1]<<"+"<<b<<"="<<sum;

return sum;
}
追问
那在写批处理的时候test.exe后面要跟两个数字喽?
还有atoi是什么意思?谢谢!!
追答
test.exe 跟一个数字
atoi函数是把字符转整型

比如只调用test.exe,什么都不跟。
到main函数中,argc = 1 ,argv[0] = "E:\test.exe" (举例),默认永远存在

如果你输入test.exe 5
到main函数中,argc = 2, argv[0] = "E:\test.exe" , argv[1] = "5" (字符串,后面计算要转为整型)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式