程序传入参数,argv使用方法技巧之一

本例中需要解决的问题为: 
    如果调用程序时,给程序传入2.3这个参数,该2.3会当做字符串存在argv[1]中,如何从argv[1]中分别获得2和3,保存到各自的int型变量中。

    然后发现,argv[1]可以使用argv[1][0]、<span style="font-family: Arial, Helvetica, sans-serif;">argv[1][2]来获得。

实例如下:

void main(int argc, char *argv[])
{
	if(argc != 2)
	{
		EPT(stderr,"run %s, must provide the address",argv[0]);
		exit(0);
	}

	int net,node;
	net = (int)(argv[1][0] - '0');
	printf("%c\n",argv[1][1]);
	node = (int)(argv[1][2] - '0');
	printf("net = %d, node = %d\n",net,node);
	exit(0);
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的示例程序,它使用getopt函数从命令行获取选项和参数: ```c #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char *argv[]) { int opt; char *str = NULL; int num = 0; while ((opt = getopt(argc, argv, "s:n:")) != -1) { switch (opt) { case 's': str = optarg; break; case 'n': num = atoi(optarg); break; case '?': fprintf(stderr, "Usage: %s [-s string] [-n number]\n", argv[0]); exit(EXIT_FAILURE); } } printf("String: %s\n", str); printf("Number: %d\n", num); return 0; } ``` 上述程序使用了getopt函数来处理命令行选项和参数。在这个程序中,我们定义了两个选项:“-s”和“-n”,分别用于传递一个字符串和一个整数。使用getopt函数解析命令行选项和参数的过程如下: 1. 调用getopt函数来获取下一个选项字符。如果所有选项都已处理完毕,getopt函数返回-1。 2. 如果当前选项字符为一个有效的选项(即在选项字符串中定义过),则根据选项的类型来处理它的参数。在本示例程序中,“-s”和“-n”选项都需要一个参数。选项的参数可以通过全局变量optarg来获取。如果选项的参数不合法(比如不是一个数字),则可以用相应的错误处理代码来处理。 3. 如果当前选项字符不是一个有效的选项(即不在选项字符串中定义过),则返回“?”并显示一个错误消息。 4. 重复执行步骤1-3,直到所有选项都已处理完毕。 在本示例程序中,我们使用了两个全局变量来存储选项和参数的值:str和num。如果选项没有被指定,则它们的值将保持为默认值(即NULL和0)。在程序的最后,我们输出这两个变量的值,以验证程序是否正确地处理了命令行选项和参数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值