socket编程:我想将socket程序里的输入在命令行运行时就给出数值,请问有什么函数吗?

例如下面程序:
#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("\na+b=%d\n",a+b);
return 0;
}
假如文件名叫add_s.c,编译后是add_s我希望能够这样提供参数:
$ sudo ./add_s 3 2
运行结果为:5
刚接触linux,求大神指点,有什么函数可以实现上面的效果啊?急!!

第1个回答  2013-03-10
通过命令行将参数传递给程序不能使用scanf。需要为main函数添加参数
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char * argv[])//argc参数的个数,argv存放参数的数组
{
int a = 0;
int b = 0;
if(argc == 3)
{
a = atoi(argv[1]);
b = atoi(argv[2]);
}
printf("\na+b=%d\n",a+b);
return 0;
}
argc是命令行参数的个数这里是3
argv存放的是参数,第一个是命令"add_s",第二个是"3",第三个是"2"
第2个回答  2013-03-10
有两种方法:
1)修改程序让其支持命令行参数;
2)重定向输入,将3 2写到一个文本文件中(data.txt),然后将该文本文件作为add_s的重定向输入文件,$ sudo ./add_s < data.txt追问

非常感谢,第二种方法果然可以。
那请问就上面这个例子的话,第一种方法怎么改程序?
我还是想在命令行上操作~不胜感激!

追答

#include
int main(int argc, char ** argv)
{
if(3 != argc)
printf("usage: add_s num1 num2\n");

int a = atoi(argv[1]);
int b = atoi(argv[2]);

printf("a+b=%d\n",a+b);

return 0;

}

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网