ubuntu main命令行传参数

clleady 2011-07-15 02:19:41
void main(int source)

main函数要输入一个source数据,进行处理。
请问,我只会用gcc编译完后,./main
那么怎么传入source参数呢?
./main 30
貌似不行。java的传参数就是在class类名后空格加参数名。那么Ubuntu中怎么为main函数传参数30呢?谢谢。
...全文
292 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
clleady 2011-07-15
  • 打赏
  • 举报
回复
成功了!谢谢各位
#include "stdio.h"
#include <stdlib.h>
int main(int argc, char * argv[])

{
int s=0;
s=increment(atoi(argv[1]));
printf("increment is %d\r\n",s);
s=negate(atoi(argv[1]));
printf("negate is %d\r\n",s);

}
==========
root@apple-pc:/media/sf_sha/test3# ./main 30
increment is 31
negate is -30
root@apple-pc:/media/sf_sha/test3#
szqh97 2011-07-15
  • 打赏
  • 举报
回复
int main(int argc,char** argv)

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

带参数的main函数只能是这样的,argc表示参数的个数,后面的是参数的内容,字符串形式,用atoi()函数来转换为整形。
clleady 2011-07-15
  • 打赏
  • 举报
回复
#include "stdio.h"
int main(int argc,char *argv[])
{
int s=0;
s=increment(argv[1]);
printf("increment is %d\r\n",s);
s=negate(argv[1]);
printf("negate is %d\r\n",s);

}
如何改。./main 30
才能把参数30传进去,谢谢。
jernymy 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hongwenjun 的回复:]
C/C++ code
int main(int argc, char* argv[])
{
using namespace std;
if ((1 == argc)||(2 == argc)) { //错误输入处理
help();
return -1;
}
string Value = argv[1];
……
[/Quote]

正解
  • 打赏
  • 举报
回复
这个问题没出现过,那样传参数没问题啊
luciferisnotsatan 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hongwenjun 的回复:]

C/C++ code
int main(int argc, char* argv[])
{
using namespace std;
if ((1 == argc)||(2 == argc)) { //错误输入处理
help();
return -1;
}
string Value = argv[1];
ifst……
[/Quote]
正解
帅得不敢出门 2011-07-15
  • 打赏
  • 举报
回复

int main(int argc, char *argv[])
{
if (argc == 2)
printf("%d\n", atoi(argv[1]));
}
hongwenjun 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 clleady 的回复:]
void main(int source)

main函数要输入一个source数据,进行处理。
请问,我只会用gcc编译完后,./main
那么怎么传入source参数呢?
./main 30
貌似不行。java的传参数就是在class类名后空格加参数名。那么Ubuntu中怎么为main函数传参数30呢?谢谢。
[/Quote]

int main(int argc, char* argv[]) 定义为这样

./main 30 命令行 传入两个参数
argv[0] = "./mian" argv[1] = "30"
argc =2

金刚葫芦娃 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 clleady 的回复:]
void main(int source)

main函数要输入一个source数据,进行处理。
请问,我只会用gcc编译完后,./main
那么怎么传入source参数呢?
./main 30
貌似不行。java的传参数就是在class类名后空格加参数名。那么Ubuntu中怎么为main函数传参数30呢?谢谢。
[/Quote]


你还是先看看java 跟C的区别吧.
hongwenjun 2011-07-15
  • 打赏
  • 举报
回复
int main(int argc, char* argv[])
{
using namespace std;
if ((1 == argc)||(2 == argc)) { //错误输入处理
help();
return -1;
}
string Value = argv[1];
ifstream inFile;
inFile.open(argv[2]);
if (!inFile) {
cerr << "文件错误:不能打开输入文件: " << argv[2] << endl <<endl ;
help();
return -1;
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧