主函数解释 C/C++

主函数:只有两种写法:

int main(void){return 0;} 不需要从命令行获得参数

int main(int argc, char *argv[]){return 0;} 需要从命令行获得参数

以前经常出现的情况,void main()不存在这样的写法。


DOS命令下如何运行exe文件

磁盘 例如 D盘 D:

文件夹 例如Dev c++ cd "Dev c++"

运行test.exe    test.exe  参数  参数  


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

argc 一个整型变量,用于存储命令行的参数个数,文件名tese.exe作为第一个参数对待

argv[] 一个存放参数“字符串”地址指针的数组,数组的每个元素都为指向某个命令行参数“字符串”的指针,argv[0]指向文件名

/*
 *******************************
 *test.c
 *解释main函数中argc,argv[] 
 *******************************
 */
 #include<stdio.h>
 
 int main(int argc,char *argv[])
 {
 	printf("参数个数:%d,分别是\n",argc);
 	while(argc-->0)
 	   printf("%s\n",*argv++);
 	return 0;
 } 

例子:cat程序的实现,在命令行输入cat  文件名参数,输出多个文件内容到屏幕

/*
 *******************************
 *cat.c
 *cat程序,在命令行输入文件名1,文件名2,... ,文件名n
 *在屏幕上输出这些文件内容 
 *如果没有文件名参数,则从标准输入中读取到标准输出 
 *******************************
 */
 #include<stdio.h>
 
 int main(int argc,char *argv[])
 {
 	int c;
 	FILE *fp;
 	if(argc == 1)/*如果没有文件名参数*/
 	{
 		while((c=getc(stdin) )!=EOF)/*(c=getc(stdin) )一定要括起来再去和EOF比较*/
 		   putc(c,stdout);
 	}
 	else
 	{
 		while(--argc>0)
 		{
 			if( (fp=fopen(*++argv,"r") ) ==NULL)/*打开文件失败,此处一定要先argv++在解析*/
 			{
 				printf("First paper name is not exist\n");
 				return 1;
 			}
 			else
 			{
 				while( (c=getc(fp) )!=EOF)
 				   // printf("a");
 				    putc(c,stdout);
 				fclose(fp);
 			}
 		}
 	}
 	return 0;
 } 



你可能感兴趣的:(argv,main函数,argc)