一、C/C++主函数main中参数argc和argv含义及用法
我们常见的主函数如下所示:
-
//C 语言中的主函数
-
#include <stdio.h>
-
int main(int argc, char* argv[])
-
{
-
return
0;
-
}
-
-
//C++ 中的主函数
-
#include <iostream>
-
using
namespace
std;
-
int main(int argc, char* argv[])
-
{
-
return
0;
-
}
主函数也是一个函数,也能够由外部的程序调用,其中argc和argv就是主函数的两个参数。
1、argc 是 argument count 的缩写,表示传入main函数的参数个数;
2、argv 是 argument vector 的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定包含了程序所在完整路径的名称,所以确切的说需要我们输入的main函数的参数个数应该是argc-1个,示例如下:
-
#include <iostream>
-
using
namespace
std;
-
-
void main(int argc, char* argv[])
-
{
-
//打印所有的参数
-
for (
int i =
0; i < argc; i++)
-
cout <<
"argument[" << i <<
"] is: " << argv[i] <<
endl;
-
-
system(
"pause");
-
}
程序输出:
二、使用Python中的os.system()方法
使用os.system方法需要引入import os模块。(和C/C++中的System函数类似)
- 该函数用于将字符串转化为系统命令而执行。
- 该函数执行成功返回0,否则返回其他数字。返回的数字根据出错类型给出(1: Operation not permitted,2: No such file or directory …等)
示例:
-
import os
-
-
# 一些常用的网络命令
-
os.system(
"ping www.baidu.com")
-
os.system(
"ipconfig")
三、使用os.system调用exe文件
我们以C++程序为例,先编写一个加法函数,参数为a、b、c、d,返回a+b+c+d的值:
-
#include <iostream>
-
#include <string>
-
using
namespace
std;
-
//加法函数
-
int addNumber(int a, int b, int c, int d)
-
{
-
return a + b + c + d;
-
}
-
//主函数
-
void main(int argc, char* argv[])
-
{
-
int elem[
4] = {
0 };
//参数数组
-
-
//将参数转换为整数
-
//第0个参数为路径+文件名,所以i从1开始
-
for (
int i =
1; i < argc; i++)
-
//stoi为string中的函数,即string to int,将字符串转换为整数
-
elem[i -
1] = stoi(argv[i]);
//将字符串转换为整数
-
-
cout<<
"addNumber函数的输出为:"<<addNumber(elem[
0], elem[
1], elem[
2], elem[
3]);
-
-
system(
"pause");
-
}
将上述的C++代码编译执行,可能会报错,因为argv没有传入参数,会报出数组越界的错误,如下:
但是不会影响生成exe文件,将生成的exe文件和新建的python文件放在同一目录下(不放在同一路径下时,需要写绝对路径+文件名),在Python文件中写入如下代码
-
import os
-
-
a = input(
'请输入a:')
-
b = input(
'请输入b:')
-
c = input(
'请输入c:')
-
d = input(
'请输入d:')
-
-
os.system(
"addNumber.exe" +
" "+a+
" "+b+
" "+c+
" "+d)
注意,参数之间一定要用空格隔开
最后的输出如下:
转载:https://blog.csdn.net/qq_40836442/article/details/116332180
查看评论