关于用批处理命令给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
但运行结果不正确,请高手指点.(如图) 展开
#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
但运行结果不正确,请高手指点.(如图) 展开
1个回答
展开全部
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;
}
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" (字符串,后面计算要转为整型)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询