【C++&Python】拾遗

【C++&Python】拾遗,第1张

1. 带参数执行

  在C/C++中,常用的控制台程序中main函数都是不传参数的,这样相当于无参数执行,但main函数完整的定义结构是有参数的:

int main(int argc, char *argv[]);

其中,argc代表参数的个数(argument count),argv代表各个参数的首地址(一个指针数组)(argument value),而且需要注意的是,argc是传入参数个数+1;argv[0]实际上就是该程序所在地址,只读。
  那这个怎么使用呢?一般是先编译运行,然后在命令行中执行程序时传入参数即可。

附:参考链接

  同样,在python中也有类似的传入参数执行的 *** 作,具体可以看一下这个链接。

2. C语言中执行命令行 *** 作并保存到文件

  最近才知道,C语言中的system("pause");等一些类似的语法,实际上就是在命令行中输入引号中的字符串,实现调用系统的一些功能。那能不能使用这个语法来执行一些相对复杂的指令,而且最好是可以将执行结果返回回来。
  保存命令行执行得到的结果一般有两种方式,一种是在文件中写入特定的内容,需要使用到echo指令,使用格式:echo 内容 > 文件路径,举个例子

echo hello "C:\Users\Zeoy\Desktop.txt"

上面这个例子是将hello内容写入到一个txt文件中。参考链接
  但其实更常用的是执行完一个指令之后获取其执行结果,这个时候就不需要加echo指令了,直接使用>符号即可。看下面这个例子

ipconfig > C:\Users\Zeoy\Desktop\1.txt

(路径的引号可加可不加)
  上面这个指令实现的是执行ipconfig指令,然后将返回内容写入到txt文件中。参考链接
  不过,需要注意的是,以上两种方式如果指令中有特殊符号的话,需要使用^进行转义。此外,在C语言编写时,如果字符串中有特殊符号,也需要进行转义,但使用的符号是\,所以在C语言中需要进行两次转义:

//命令行中的ipconfig > C:\Users\Zeoy\Desktop\1.txt
char s[50] = "ipconfig > ^\"C:^\\Users^\\Zeoy^\\Desktop^\\1.txt^\"";
system(s);

  脑洞大开:将上面两种 *** 作结合一下,是不是可以实现在C语言中调用python代码执行的结果?这样也就是运行C语言程序要求具有python环境 [狗头]

3. C语言中获取文件自身路径的方法 4. exit(0)与exit(1)、return区别

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1498445.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-25
下一篇 2022-06-25

发表评论

登录后才能评论

评论列表(0条)

保存