关于main(),让程序可以执行命令行参数

C++中System()函数的使用及带参数main函数 最近在弄天猫的大数据比赛 其中有一部分需要用一个exe调用另一个exe 经过百度后知道可以用system()这个函数来达到目的 函数所在库:stdlib 阅读详情

     MS  C++/C应用程序的启动函数为mainCRTStartup()或者WinMainCRTStartup(), 他们都在这个函数内部定义了main()函数,或者WinMain(),然后以他们的返回值为参数调用库函数exit(),因此也就默认了main()应该作为它的连接对象,如果找不到这样的函数定义,自然就会报错了。

    main()其实就像是一个回调函数。

    基于应用程序的框架生成的源代码中往往找不到main(),因为应用程序框架把main()的实现隐藏起来了,并且它的实现具有固定的模式,所以不需要程序员来编写。在应用程序的连接阶段,框架会将包含main()实现的library加进来一起连接。 

    我们写的可执行程序如何处理命令行参数的能力? 可以在main()函数中添加形式参数以接收程序在启动时从命令行中输入的各个参数。如int main(int argc, char* argv[]) 输入的命令和参数个数加起来传给argc, 程序截获并打包成字符串数组后传递给argv.

以下程序说明了这点:

#include<stdio.h>
int main(int argCount,char* argValue[])
{
 FILE *srcFile=0,*destFile=0;
 int ch=0;
 if(argCount!=3)
 {
  printf("USage:%s src-file-name dest-file-name/n",argValue[0]);
 }
 else
 {
  if((srcFile=fopen(argValue[1],"r"))==0)
  {
   printf("Can not open source file/"%s/"!",argValue[1]);
  }
  else
  {
   if((destFile=fopen(argValue[2],"w"))==0)
   {
    printf("Can not open destination file/"%s/"!",argValue[2]);
    fclose(srcFile);
   }
   else
   {
    while((ch=fgetc(srcFile))!=EOF)
     fputc(ch,destFile);
    printf("Successful to copy a file!/n");
    fclose(srcFile);
    fclose(destFile);
    return 0;
   }
  }
 }
 return 1;
}

PCB光绘文件DFM检查:从Gerber验证到制造闭环 Gerber文件是PCB设计交付制造的核心数据载体,其准确性直接决定硬件可制造性与量产良率。理解Gerber格式规范、IPC网表比对原理及DFM(Design for Manufacturability)自动检测逻辑,是电子工程师保障设计落地的关键能力。通过电气连通性验证、物理DRC规则扫描与工艺兼容性分析,DFM工具能提前识别开路、短路、孔环不足、阻焊异常等典型问题,避免投板后返工甚至批量报废。在国产化替代趋势下,华秋DFM等平台已深度适配Altium Designer工作流,支持一键导入、智能报告与协同 阅读详情

相关推荐

ESP32-C3入门教程 WiFi篇①——WiFi Scan 扫描附近AP无线热点 | 堵塞等待扫描结果,回调事件通知扫描结果

文章目录一、快速运二、运效果三、程序流畅四、关键函数4.1 扫描所有有效的AP4.2 获取上次扫描中找到的AP列表4.3 获取上次扫描中找到的AP数 一、快速运 示例项目中,选择WiFi—>scan menuconfig配置ESP32C3-Specific—>Rec 0 芯片选择ESP32-C3(Built-in USB JTAG) 快速运ESP-IDF Build, Flash and Monitor(左下角) 二、运效果 三、程序流畅 esp_netif_init,初始

5388

参数main函数

参数main函数,如何在windows系统的命令中给带参数main函数传递实参

mili_j的博客 4784

放大器非线性失真研究装置

本放大器非线性研究装置,主要包括晶体管放大电路、偏置分压电路、信号调理电路、单片机四个部分。通过晶体管放大电路对微弱的信号进放大,得到幅值为 1.68v 的正弦波,在同晶体管第二级放大电路调整不同的静态工作点和放大倍数得到正常波形以及三种不同类型的失真波形信号,交越信号产生电路产生交越信号。调理电路用于将输出的信号电压偏置为正电压且压缩在 3.3V 内,以保护单片机。最后单片机通过定时 AD 采样和快速傅里叶变换,得到基波和高次谐波的幅值,计算晶体管放大电路的总谐波失真。

Visual Studio 2017怎样调试main函数含参数程序C++、OpenCV)

首先使用:cd F:SoftwareData\OpenCV\Study\Calibration_sample...(根据你自己的盘符和目录设置)这样的方式将CMD运环境转移到需要运的exe程序所在的目录。注意,cd是转移目录的命令,即:change directory。 在运含有参数的exe程序时,需要在CMD环境下直接输入可执程序名称(不含扩展名“.exe”),然后不按回...

yibeiyese的博客 2061

Python学习记录2——使用subprocess执行命令

入职新公司,老大教我们学Python,给我们出了一个小题目:使用Python subprocess设计一个函数,要求1.函数的参数1是要执的命令参数2是超时时间,单位为秒;2.函数功能为执参数1的命令,不能阻塞;3.设计函数的返回值,方便调用者。我已经好久没学Python啦,之前照着learn Python by the hard way那本书只学到了类那里,subprocess啥的没听...

qiaojiazhe的博客 7801

java中main是什么_Java中的main()方法详解

在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运的时候,第一个执的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void 类型的,方法必须接收一个字符串数组的参数等等。在看Java中的main()方法之前,先看一个最简单的Java应用程序HelloWorld,我将通过这个例子说明Ja...

weixin_42498641的博客 5787

Java:main()方法(编写实现程序时:统计传递参数的数量及每个参数值)

main() 方法定义的语法如下所示。 public static void main(String[] args) { //方法体 } 其中,使用 main() 方法时应该注意如下几点: 访问控制权限是公有的(public)。 main() 方法是静态的。如果要在 main() 方法中调用本类中的其他方法,则该方法也必须是静态的,否则需要先创建本类的实例对象,然后再通过对象调...

Yummy的博客 1871

java main_详细讲解Java中的main()方法

前言JAVA中的主函数是我们再熟悉不过的了,相信每个学习过JAVA语言的人都能够熟练地写出这个程序的入口函数,但对于主函数为什么这么写,其中的每个关键字分别是什么意思,可能就不是所有人都能轻松地答出来的了。我也是在学习中碰到了这个问题,通过在网上搜索资料,并加上自己的实践终于有了一点心得,不敢保留,写出来与大家分享。Java中的main()方法java虚拟机通过main方法找到需要启动的运程序,...

weixin_34638776的博客 693

命令参数的使用(讲解main函数的参数

什么是命令参数? linux下经常会使用命令参数 例如: ls -l gcc test.c -E test.i 这些在后面加入的-l 、-E、test.c之类的的东西我们统称为命令参数 那他们是如何实现的?

无聊星期三的博客 1万+

linux的main参数传递

很多程序是需要适用main直接传递参数的,那么main参数是怎么保存的呢。 如int main(int argc int *argv[]),这个时候执行命令 cp data1.txt /dev/udisk/ 此时参数保存的结果为 argc=3,argv[0]=”cp” argv[1]=”data1.txtx”,argv[2]=”/dev/u

cole10540316的博客 1820

C语言获取文件后缀名

#include  #include   //求子串 char* substr(const char*str, unsigned start, unsigned end){    unsigned n = end - start;    static char stbuf[256];    strncpy(stbuf, str + start, n);   

5231

如何修改const常量的值

    看到这个标题,你也许会说,我不懂const, 因为Const修饰的是不可变得变量,他的值是不能修改的。没错,const修改的值的确不能修改,但是也有条件,条件就是编译不能通过,const是一个编译时期常量。如果我能在绕过编译器,通过编译后,我仍然可以修改const的值。    分C/C++两种情况讨论:    一 C语言:    const long lng=10;    

4326

函数指针调用类成员函数的解决方案

    如果碰到在一个类中通过函数指针调用成员函数的要求。比如:在一个类中使用了 STL的排序函数qsort时,因qsort参数需要一个比较函数指针,如果这个类使用某个成员函数做比较函数,就需要将这个成员函数的指针,也就是成员函数名,传给qsort供其调用。    如以下三种情况就会出现编译错误:    1 将类的成员函数指针赋予同类型非成员函数指针#include#includety

1899

如何在类中建立恒定的常量

    有时候,一个类的所有对象都共享相同的数据,这样节约存储,不需要在每个类实例化后都放相同的数据。那么有哪些方法来实现呢?   1 使用static const, static表示只为一个编译单元。class A {public:static const int SIZE1 = 10;  //VC不支持static const int SIZE2 = 5;private:int arr

1450

四种对象四种存储方式

 

1340

const修饰对象,成员函数,成员变量

     const表示常量,意思就是说,被它修饰的对象,成员函数,成员变量,在整个程序期间,它的值得保持不变,如果你在程序中改变它,编译器将会报错。    如下面程序:#include void display(const double &r);void main(){ double d(9.5); display(d);}void display(const doubl

1228

深入解析C++构造函数

1 带有default Constructor的Member Class Object2 带有Default Consturctor的Base Class3 带有一个Vitual Function的Class4 带有一个Virtual Base Class的Class 

1084

分析C++中友元实现数据共享

   在C++中,为什么要引入友元的概念呢?主要是为了实现数据共享,提高程序效率,方式就是避免过多的函数调用。请看以下实例:#include#includeclass Point{public: Point(int xx,int yy) {  X=xx;  Y=yy; } int GetX() {  return X; } int GetY() {  return Y; } friend fl

1062

C语言中const修饰变量和指针

    const型的变量是不能被程序修改的,但是确可以被赋予初始值。编译程序把这类变量放入只读区域。如:const int a = 10;生成名为a的整形变量,程序不能修改其内容。    如果是和指针一起使用那么要注意,该指针指向的内容是不能被修改的。    下面的代码说明了 const char *str的作用: #include void sp_to_dash(const c

848

冒泡排序的多种实现

    冒泡排序的思想,是不停的交换,有2层循环,第一层循环说明的是比较的次数,第二层循环是比较的趟数。    1 是用数组实现(C):#includevoid main(){  int array[] = {45,56,76,234,1,34,23,2,3}; int temp; for(int i=0;i {  for(int j=0;j  {   if(array[j]>ar

797
上一篇: MySpace&FaceBook和我的论文
下一篇: 详解C++虚函数表
burningcpu
博客等级 码龄20年 13粉丝 83原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值