有关VS2022中命令行调用的二三事

        大家好!作为一个csdn的新人,在考试周前夕被迫上级,心里无比紧张,为了给大家分享关于VS中命令行的事情,防止大家踩雷,博主因此决定写自己人生中第一个博客,并且希望坚持写博客的习惯。

目录

1.命令行

1.1命令行的介绍

1.2命令行参数的介绍

1.3在VS2022编译器中进行命令行的调用

1.4简单的命令行调用小程序

 1.5将字符串转换为数字

1.命令行

1.1命令行的介绍

        命令行(command line)是指在命令行环境中,用户为运行程序输入命令的行。命令行是计算机操作系统提供的一种用户界面,它允许用户在命令提示符下输入指令,然后通过计算机系统来执行这些指令。本文仅讨论其在VS2022系统中使用其的方法。

1.2命令行参数的介绍

        C语言的编译器允许main()函数没有参数或有两个参数(一些情况下可能有更多参数),当main()函数有两个参数的时候,第一个参数是命令行传入参数的总个数(命令行传入的第一个参数为当前的可执行程序名,其余的参数为命令行中的字符串),我们用int argc来表示(表示参数计数(argument count)),系统用空格表示一个字符串的结束和一个字符串的开始。编译器在读取命令行后,将命令行字符串存储在内存中,并把每个字符串的地址存储在指针数组中,该数组的地址被存储在main()的第二个参数中,我们将这个指向指针的指针称为argv(表示参数值(argument value))。我们将第一个字符串的地址赋给argv[1],第二个字符串的地址赋值给argv[2]......

注意:一般情况下,argv[0]中存储着当前文件的名称,或者是‘0’

        我们一般将其写成如下的形式:

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

        或者这样的形式

int main(int argc,char**argv)

注意:不要随意改变main函数中变量的名称

        顺便一提,许多环境都允许用双引号把多个单词括起来形成一个参数,例如:

"i am hungry" now

        这行命令将字符串“i am hungry”赋给argv[0],将“now”字符串赋给argv[1]。        

1.3在VS2022编译器中进行命令行的调用

        

在 Visual Studio 2022 编译器中实现命令行调用的方法如下:

  1. 打开 Visual Studio 2022 编辑器,并创建一个新的控制台应用程序项目。

  2. 编写你的命令行程序,并确保它能够在命令行中运行。

  3. 打开“解决方案资源管理器”,找到你的项目,右键单击并选择“属性”。这里要点击项目!!而不是源文件

     这里一定要记住右键项目(Project2),而不是你的源文件

  4. 在“属性页”中,选择“配置属性” -> “常规”,然后将“配置类型”选项设置为“应用程序(.exe)”。

  5. 在“属性页”中,选择“配置属性” -> “调试”,然后将“命令参数”设置为你的命令行参数。

  6. 在“属性页”中,选择“配置属性” -> “调试”,然后将“工作目录”设置为你的命令行程序所在的目录。

  7. 点击“确定”保存更改。

  8. 使用“Ctrl + F5”或在“调试”菜单中选择“以不调试模式启动”来运行程序,它将自动打开命令行并执行你的命令行程序,同时传递你指定的命令行参数。

这样,你就可以在 Visual Studio 2022 编译器中实现命令行调用了。

1.4简单的命令行调用小程序

        运用上面的步骤,我们将文件的命令行参数设置为如下

 我们来运行如下的代码

#include<string.h>
#include<stdio.h>
int main(int argc,char*argv[])
{
	if (argc != 3) {
		printf("Usage: %s num1 num2\n", argv[0]);
		return -1;
	}

	int a, b;
	a = atoi(argv[1]);        //打印第一个命令行参数
	b = atoi(argv[2]);        //打印第二个命令行参数
	printf("%d %d", a, b);
	return 0;
}
输出结果: 10 20

 1.5将字符串转换为数字

        数字既可以用字符串的形式储存,也能以数值的形式储存。数字213以‘2’,‘1’,‘3’,‘\0‘的形式被储存在字符串数组中;以数值形式储存213,储存的是int类型的值。

        printf()和sprintf()等函数可以通过%d的说明,将数字从数值的形式转换为字符串的形式。scanf()函数可以把输入的字符串转换为数值的形式。

        如果你编写的程序需要使用数值来命令形参,但是命令行中命令形参数被读取为字符串。因此,使用数值时必须先把字符串转换为数字。如果需要整数,我们可以使用atoi()函数(用于把字母数字转换成整数),该函数接受一个字符串作为参数,返回相应的整数值。下面我们来介绍这个函数的简单用法:

#include <stdio.h>
#include <stdlib.h>   //——atoi()函数的库
#include <string.h>

int main()
{
   int val;
   char str[20];
   
   strcpy(str, "98993489");
   val = atoi(str);
   printf("字符串值 = %s, 整型值 = %d\n", str, val);

   strcpy(str, "runoob.com");
   val = atoi(str);
   printf("字符串值 = %s, 整型值 = %d\n", str, val);

   return 0;
}
字符串值 = 98993489, 整型值 = 98993489
字符串值 = runoob.com, 整型值 = 0

        如果字符串仅以整数开头,atoi()函数只会把开头的整数转换为数值,例如atoi("42regular")将返回整数42。如果命令行参数不是数字,则atoi()函数将会返回0。然而C标准定义,这种情况下的行为是未定义的,因此使用有检测错误功能的strtol()函数会更加安全(本文不再进行介绍)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值