iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >关于C语言和命令行之间的交互问题
  • 570
分享到

关于C语言和命令行之间的交互问题

2024-04-02 19:04:59 570人浏览 泡泡鱼
摘要

在windows操作系统中,后缀为.exe的文件都是可执行文件。.exe是英文单词executable的缩写,意思是可执行的。凡是可执行的文件都是二进制的文件,计算机也只能识别二进制

windows操作系统中,后缀为.exe的文件都是可执行文件。.exe是英文单词executable的缩写,意思是可执行的。凡是可执行的文件都是二进制的文件,计算机也只能识别二进制的文件。

后缀为.exe的文件是由C语言的源文件.cc++的源文件.cpp编译而来。

在Windows操作系统中,凡是.exe的文件,都可以作为一条命令,在命令行中来执行。例如:在我的电脑D盘cPro文件夹中就有很多编译好的.exe可执行文件:

在这里插入图片描述

Win + R 键输入cmd,进入命令行:

在这里插入图片描述

然后输入命令进入到D:\cPro

在这里插入图片描述

cPro这个当前的文件目录下,就可以输入命令去执行这些可执行文件:
打印一个心形图

在这里插入图片描述

任意长度的二进制字符转换为十六进制

在这里插入图片描述


以上所有的可执行程序都是没有参数的,直接输入它的名字,就可以执行。本文的标题是和命令行进行交互,也就是说从命令行接收参数。在大多数情况下,我们写的C语言代码中,主函数都是没有参数的,如果想要和命令行进行交互,就需要主函数设置参数:


int main(int arGC, char *argv[]){
	return 0;
}

其中argc是参数的个数,argv是一个字符串数组

例如:从命令行接收参数,并把它们的参数打印出来:


#include<stdio.h>
int main(int argc, char *argv[]){
	int i;
	for(i = 0; i < argc; i++)
		printf("%s\n",argv[i]);
		
	return 0;
}

编译该段代码,把它放在D盘的cPro文件目录下,进入命令行:

在这里插入图片描述

其中tst是这个可执行程序的名字,后面一堆是它的参数。argv[0]的值为tstargv[1]的值为Jackeyargv[2]的值为Song,往后以此类推。参数的个数是不固定的。


也可以写一个程序,让这个程序自动在命令行输入命令,例如输入命令dir列出当前文件目录下的所有文件:


int main(){
	system("dir");
	return 0;
}

运行结果:

在这里插入图片描述

再例如写一个程序,这个程序去调用当前文件目录下的另外一个程序:


int main(){
	system("tst 黑夜无论怎样悠长 白昼总会到来 莎士比亚");
	return 0;
}

运行结果:

在这里插入图片描述


以上几个小案例,就很好地介绍了如何写C语言程序,去和命令行去交互,实现一个C程序调用另外一个C程序,或者从命令行接收参数,在把参数打印出来。

当然,我们可以实现稍微复杂的功能,例如:写一个自动创建源文件的程序,并把它添加到环境变量,这样我们就可以在任意文件目录下去使用它,下面这个代码就是自动创建Java源文件的程序:


#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]){
	char str[20];
	char ext[5] = ".java";
	int i;
	FILE *fp[argc];
	for(i = 1; i < argc; i++){
		strcpy(str,argv[i]);
		strcat(str,ext);
		fp[i] = fopen(str,"wb+");
		printf("%s源文件创建成功!\n",str);
		fclose(fp[i]);
	}
	
	return 0;
}

编译后给生成的可执行文件命名为newja,把它添加到环境变量,在命令行中调用它:

在这里插入图片描述
在这里插入图片描述


也可以写程序自动在命令行输入命令,调用newja这个程序,让它自动创建源文件:


int main(){
	system("newja aaa b cc e fdd");
	return 0;
}

在这里插入图片描述


和命令行交互,能做的事情远远不止这些,只要你能想到的,它就能做到。

到此这篇关于C语言和命令行之间的交互的文章就介绍到这了,更多相关C语言命令行交互内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 关于C语言和命令行之间的交互问题

本文链接: https://www.lsjlt.com/news/131017.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 关于C语言和命令行之间的交互问题
    在Windows操作系统中,后缀为.exe的文件都是可执行文件。.exe是英文单词executable的缩写,意思是可执行的。凡是可执行的文件都是二进制的文件,计算机也只能识别二进制...
    99+
    2024-04-02
  • C语言和命令行之间的交互方式
    本篇内容介绍了“C语言和命令行之间的交互方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Windows操作系统中,后缀为.exe的文件都...
    99+
    2023-06-20
  • C语言和命令行间的交互问题怎么解决
    本篇内容主要讲解“C语言和命令行间的交互问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言和命令行间的交互问题怎么解决”吧!在Windows操作系统中,后缀为.exe的文件都是可执...
    99+
    2023-06-17
  • 关于Nginx命令行控制的问题
    目录Nginx 介绍1、默认方式启动2、另行指定配置文件的启动方式3、另行指定安装目录的启动方式4、另行指定全局配置项的启动方式5、测试配置信息是否错误6、在测试配置阶段不输出信息7...
    99+
    2022-11-13
    nginx 命令行 nginx 命令行控制
  • 关于androidstudio通过命令行运行gradle编译命令的问题
    报错:Could not resolve all dependencies for configuration ':classpath'  打开android-studio的ter...
    99+
    2024-04-02
  • C语言之关于二维数组在函数中的调用问题
    目录关于二维数组在函数中的调用问题函数调用二维数组 二维数组如何放到函数中使用下面以一个二维矩阵的转置为例关于二维数组在函数中的调用问题 之前在学习二维数组的时候感觉理解起...
    99+
    2024-04-02
  • 关于R语言lubridate包处理时间数据的问题
    加载包 # install.packages(lubridate) library(lubridate) 第一个函数ymd():解析日期为年月日格式 x <- c("...
    99+
    2024-04-02
  • 关于c语言中输出字符指针的相关问题
    目录c语言输出字符指针问题例如定义一个 char * p = "hello";的字符指针c语言指针求字符串长度c语言输出字符指针问题 例如定义一个 char * ...
    99+
    2024-04-02
  • C语言中关于scanf读取缓存区的问题
    目录前言scanf函数的定义功能:执行格式化输入总结解决方法前言 在牛客做了很多坑爹的题,明明代码没问题但是就退无法AC,看了很多题解之后,发现是scanf读取缓存区,在输入输出时出...
    99+
    2024-04-02
  • windows7系统下关于IPv6的命令行快速关闭问题探讨
    但对于IPv6隧道的概念比较陌生吧,一般用户肯定很少能接触到,但是如果有接触到的用户肯定是想要了解关于IPv6隧道命令行快速关闭的方法,方法其实也很简单,大家往下看就是了。 IPv6隧道是将IPv6报文封装在IPv4报文...
    99+
    2023-05-30
    win7 IPv6 命令行 问题 系统 windows7
  • C语言数组和指针,内存之间的关系
    首先论证一维数组和一级指针之前的关系,我们常常使用一级指针指针的方式访问一维数组,只有对内存的理解到位才能理解它们直接的关系。 1.数组名是数组的首地址2.对数组名取地址得到的还是数...
    99+
    2024-04-02
  • python中关于py文件之间相互import的问题及解决方法
    目录问题背景实例演示问题背景 调试脚本时,遇到一个问题:ImportError: cannot import name 'A' from 'study_cas...
    99+
    2024-04-02
  • C语言中关于scanf函数的一些问题详解
    在学习创建二叉树时遇到了scanf的一些问题,在此记录下来 创建根节点A后理想情况是输入A的左子树,若不为空继续创建左子树,但输入A后发现重复创建了一个左子树,测试后发现输入A换行...
    99+
    2024-04-02
  • 关于antd tree和父子组件之间的传值问题(react 总结)
    项目需求:点击产品树节点时获取该节点的所有父节点,同时回填表格的搜索条件,完成搜索功能,搜索结果展示在下方的table中。 写了三个组件: 现在有个业务场景交互:在orderTr...
    99+
    2024-04-02
  • 如何将用于执行 MySQL 语句的内置命令(g 和 G)相互组合?
    众所周知,内置命令(\G 和 \g)将命令发送到 MySQL 服务器执行,两者的结果集格式不同。为了将它们组合起来并获得没有错误的结果,我们需要在一条语句中编写两个查询,一个查询以 \G 结尾,另一个查询以 \g 结尾。示例 H2>mysq...
    99+
    2023-10-22
  • C语言中数组和指针,内存之间的关系是什么
    小编给大家分享一下C语言中数组和指针,内存之间的关系是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先论证一维数组和一级指针之前的关系,我们常常使用一级指针...
    99+
    2023-06-29
  • 关于C语言中弱符号与弱引用的实际应用问题
    最近在学习《程序员的自我修养——链接、装载与库》时,get到了一个新的知识点:弱符号与弱引用。书中简短的介绍,让我了解到弱符号的含义以及使用方式。了解我的朋友,应该知道我喜欢将知识...
    99+
    2024-04-02
  • C语言关于include顺序不同导致编译结果不同的问题
    目录编译环境问题简化问题分析总结  今天遇到了因为include顺序不同而编译结果不同的问题。归根结底还是自己写代码的习惯不好导致的。 编译环境  &e...
    99+
    2024-04-02
  • LeetCode数组问题的最佳解决方案:使用Go语言编写Linux命令行程序
    在LeetCode的面试中,数组问题是最常见的问题之一。在解决这些问题时,我们需要快速、高效地编写代码,以展示我们在数据结构和算法方面的技能。在此过程中,使用Go语言编写Linux命令行程序是一种非常有效的方法。 Go语言是一种高性能的编...
    99+
    2023-09-23
    leetcode 数组 linux
  • ASP、Linux、自然语言处理和Apache,如何处理它们之间的兼容性问题?
    随着互联网技术的不断发展,各种不同的技术和平台之间的兼容性问题也越来越成为人们关注的焦点。在本文中,我们将探讨ASP、Linux、自然语言处理和Apache之间的兼容性问题,并介绍如何解决这些问题。 ASP和Linux的兼容性问题 ASP...
    99+
    2023-09-07
    linux 自然语言处理 apache
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作