因为面对对象作业(2018.5.21)的要求,去学习了C/C++中main函数参数的意义,以及一些简单的使用(从命令行指令的接受),不给予赘述。(仅为个人拙见,还望看官指正)

首先,带有参数的main函数如下表示:

int main( int argc, char* argv[] )
{
do something;
return 0;
}

其中,argc为从命令行中接受的指令个数,argv为从命令行中接受的指令内容。通俗地理解,argc就是在命令行中敲了几个字符串,argv便是这几个字符串的值(argv[i],i = 0,1,2,3……)。于是乎,bonus的一些问题我得到了解决(参数不够,参数错误)。对于参数解释,个人认为已经足够,那么如何使用所接受到的参数便成为接下来要研究的问题。(笔者以freopen为例,因为作业要求从命令行操作,而搜索出来的博客并没有我想要的内容,在我粗略浏览过后,决定自己动手)

首先观察一下freopen语句freopen( "input/output.txt", "r"/"w", stdin/stdout ),不难看出,freopen的第一个参数是一个字符串,那么freopen的参数便可以理解成:string, "r", stdin。而上文中我们提及的argv,就是接受命令行的指令的字符串数组,那么freopen语句便可以写作freopen( argv[i], "r"/"w", stdin/stdout ), i = 0,1,2,3……,那么我们就可以方便的控制输入的文件名和输出的文件名。

其次,C++对于判断文件存在与否,我通过搜索学习到了ifstream fin(str)(#include <fstream>),之后加之判断:若(!fin)为真,则名为str(str是一个字符串)的文件不存在,于是乎,bonus的一些问题又解决了(参数不规范)。而对于C而言,我记得可以通过File*来判断是否存在所索取文件。

小结:当网上的一些东西有时候并不能解决我们的需求,并不代表我们不能学习,更不代表我们无能为力,通过对企图学习的东西先有一个大体认知,再观察我们需要改变的东西,结合我们的经验,其实很多的问题都可以得到解决,这就是我这次对于main函数带参的学习的一个小收获。

关于C/C++中main函数参数的学习的更多相关文章

  1. c/c++中main函数参数讲解

    参考地址: http://blog.csdn.net/cnctloveyu/article/details/3905720 我们经常用的main函数都是不带参数的.因此main 后的括号都是空括号.实 ...

  2. Java中main函数参数String args[] 和 String[] args 区别

    其实没什么区别的:当初我也是这样的疑问,呵呵:非要说区别就看下面:执行效果上没有不同, 但在语法意义上略有不同. 比如, String与String[], 前者叫字符串类型而后者叫字符串数组类型. S ...

  3. .NET中Main函数使用小技巧

    摘要:任何语言开发出来的程序,都会有一个程序入口函数,可能每个语言所使用的程序入口函数名称不一样,但是它们的作用都是一样的,都是被操作系统去调用.那么本文主要总结.NET中的程序入口函数Main使用的 ...

  4. main函数参数解析

    int argc,char *argv agrc表示参数的个数 argv储存参数 这个函数的意思是逐一输出参数 实际上,main函数也可以带参数.带参数main函数的定义格式如下:void main( ...

  5. 性能测试分享: Jmeter的源码分析main函数参数

    性能测试分享: Jmeter的源码分析main函数参数   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大 ...

  6. eclipse 中main()函数中的String[] args如何使用?通过String[] args验证账号密码的登录类?静态的主方法怎样才能调用非static的方法——通过生成对象?在类中制作一个方法——能够修改对象的属性值?

    eclipse 中main()函数中的String[] args如何使用? 右击你的项目,选择run as中选择 run configuration,选择arguments总的program argu ...

  7. C++中main函数的返回值一定要是int

    因为大学上课时候,经常是在主函数中做处理,直接用cout语句输出到显示设备,所以一直在用void main(). 直到后面具体编程的时候,才发现void main()这种用法是按 C89(C语言的早期 ...

  8. Main函数参数argc,argv说明

    C/C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int argc, char* argv[]) ...

  9. 在C++工程中main函数之前跑代码的廉价方法(使用全局变量和全局函数)

    // test.cpp : Defines the entry point for the console application. // #include "stdafx.h" ...

随机推荐

  1. CentOS7.0 安装 Nginx

    记录下,方便以后查阅. 1.安装依赖库 yum install gcc-c++ yum install pcre pcre-devel yum install zlib zlib-devel yum ...

  2. 大数据技术大合集:Hadoop家族、Cloudera系列、spark、storm【转】

    大数据我们都知道hadoop,可是还会各种各样的技术进入我们的视野:Spark,Storm,impala,让我们都反映不过来.为了能够更好 的架构大数据项目,这里整理一下,供技术人员,项目经理,架构师 ...

  3. DB2 SQL方式查看版本

    SELECT service_level, fixpack_num FROM TABLE   (sysproc.env_get_inst_info())   as INSTANCEINFO

  4. ios 时间解析 差8个小时

    啥问题也有:小程序中web开发工具里显示时间正常,ios上显示的查8小时 原因: 使用 NSDate *date = [NSDate date]; 获取的时间是标注的UTC时间,和北京时间相差8小时. ...

  5. Oracle 数据库的组成(instance+database)

    Oracle服务器是一种对象关系数据库管理系统,它为信息管理提供开放.综合.集成的方法. Oracle服务器中有多种进进程.内存结构和文件: Oracle服务器由一个Oracle实例和一个Oracle ...

  6. 微信公众号 订单 待发货-配送中-已收货 logic

    w function logistics_sameorder($logistics) { $arr = array(); $tmp_wxout_trade_no = ''; $w = 0; $wi = ...

  7. linux里的CPU负载

    昨天查看Nagios警报信息,发现其中一台服务器CPU负载过重,机器为CentOS系统.信息如下: 2011-2-15 (星期二) 17:50 WARNING - load average: 9.73 ...

  8. 如何在 window 上面输入特殊字符?

    打开 字符映射表 程序 选中任意一个字符,它会在下方显示该字符的 16进制 转换16进制至10进制,并在输入法打开的状态下,按住 Alt 键输入 10 进制数值即可.

  9. spring 实现定时任务

    spring实现定时任务超级简单.比使用quartz简单,比使用timer强大.如下是一个简单的springboot任务,启用了定时任务 @SpringBootApplication@Componen ...

  10. pandas删除包含指定内容的行

    Outline 处理数据时,遇到文件中包含一些不需要的数据(行),需要把这些不符合要求的行给删除掉. 例如:该数据中应该都是2000年的数据,但是包含了一些2001年的数据,所以需要把2001年的数据 ...