您的位置:首页 > 大数据 > 人工智能

带参数的main函数,应该怎样运行呢

2014-08-18 11:41 190 查看

带参数的main函数,应该怎样运行呢

运行方法: (假设你的程序为Untitled1.exe) 打开命令提示符: 转到你的Untitled1.exe的目录, 输入下列命令: Untitled1.exe a basdfsa 1314324 -k -f 回车就可以运行了。 这时,在Main函数里定义的 int main(int argc, char *args[]) 里的argc = 6,就是表示有六个参数, 对应的 args[0] = "Untitled1.exe"; args[1] = "a"; args[2] = "basdfsa"; args[3] = "1314324"; args[4] = "-k"; args[5] = "-f"; 就是这样子了。

关于给main函数传递参数问题!!!在Linux环境下, 一个程序main函数有参数,

举报|2013-06-08 16:22epdc147 | 分类:C/C++ | 浏览550次
那么linux命令行运行这程序时, 怎么给main函数传递参数。

例如

程序名为:mmap.c
参数为: 1    abcd.txt

那么在Linux命令行怎么运行。
int main(int argc,char* argv[]);
argv是命令行参数个数 不带参运行 argc值为1

argv是命令行参数
argv[0]代表程序本身
argv[1]代表第一个参数
以此类推

mmap.c编译好之后得到二进制文件mmap

带两个参数 这样 就ok了:
./mmap 1 abcd.txt

程序中

操作系统为main传递的参数 argc 值为3
argv[0] 为 mmap
argv[1]为 1
argv[2] 为abcd.txt
三个参数都是 char*类型
提问者评价
Thanks you
int argc,char *argvagrc表示参数的个数argv储存参数这个函数的意思是逐一输出参数实际上,main函数也可以带参数。带参数main函数的定义格式如下:void main(int argc, char *argv[]){... ...}argc和argv是main函数的形式参数。这两个形式参数的类型是系统规定的。如果main函数要带参数,就是这两个类型的参数;否则main函数就没有参数。变量名称argc和argv是常规的名称,当然也可以换成其他名称。那么,实际参数是如何传递给main函数的argc和argv的呢?我们知道,C程序在编译和链接后,都生成一个exe文件,执行该exe文件时,可以直接执行;也可以在命令行下带参数执行,命令行执行的形式为:可执行文件名称 参数1 参数2 ... ... 参数n可执行文件名称和参数、参数之间均使用空格隔开。例如,我们在DOS下运行copy c:\test.txt d:\test.txt,可执行文件名称为copy,参数1为字符串“c:\test.txt”,参数2为“d:\test.txt”。结果copy命令将c:\test.txt拷贝到d盘,目标文件取为test.txt。如果按照这种方法执行,命令行字符串将作为实际参数传递给main函数。具体为:(1) 可执行文件名称和所有参数的个数之和传递给argc;(2) 可执行文件名称(包括路径名称)作为一个字符串,首地址被赋给argv[0],参数1也作为一个字符串,首地址被赋给argv[1],... ...依次类推。例如,现在运行命令行(test是编译后的exe文件名称):C:\TC\test how are you那么test工程的main函数参数argc=4;argv[0]将保存字符串"C:\TC\test"的首地址;argv[1]将保存字符串"how"的首地址;argv[2]将保存字符串"are"的首地址;argv[3]将保存字符串"you"的首地址;下面的例子打印所有的argv参数:main(int argc, char *argv[]){int i;printf("\nTotal %d arguments",argc);for(i=0;i<argc;i++){printf("\nArgument %d = %s ",i+1, argv[i]);}}如果编译后的exe文件名称为test,在DOS下运行C:\TC\test how are you,结果输出:Total 4 argumentsArgument 1 = C:\TC\test.exeArgument 2 = howArgument 3 = areArgument 4 = you我们也可以在调试状态下输入命令行参数,方法是:在TurboC的Options菜单下有一个子菜单Arguments,选择该项并确定,弹出输入窗口;在输入窗口键入命令行参数即可。比如要调试上述的test,可以在输入窗口键入how are you。在调试过程中,可执行文件名称和参数字符串将被传递给main函数的形式参数。在DOS系统下,人们常常希望在运行exe的同时,传递一些有用的信息。例如copy.exe,运行时将源文件名称和目的文件名称作为参数传入。利用指针数组argv作为main函数的形式参数,可以满足这种需要。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: