1.第一个C++程序

#include <iostream>
using namespace std;
  
int main()
{
	//打印Hello World!
	cout << "Hello World!" << endl;
	cin.get();
  	
	return 0;
  
}

1.1  C++的预处理和iostream文件

    #include <iostream>该编译指令将导致预处理器将iostrema文件的内容添加到程序中。在源代码被编译之前,具体iostream中的内容将替换程序中的代码行-->#include <iostream>。相比于C语言的stdio.h,C++的标准输入输出的头文件就是iostream。

    cout << "Hello World!" << endl这段代码的目的就是在屏幕上显示Hello World!,<<符号将双引号括起的字符串发送给cout,cout是一个预定义的对象,具体定义在iostream这个头文件中,对于显示字符串,输出是一个流,即从程序流出的一系列字符,cout将字符串插入到输出流中,这就完成了字符串的显示。endl是C++一个特殊的符号,表示换行。(当然‘n’也是管用的)如果不加endl,光标会留在输出字符串的后面。cout,endl都是控制符,在头文件iostream中定义,且位于名称空间std中。

    同理cin.get(),就是调用cin对象的方法,cin是输入流,如果程序中加入这行代码,运行时窗口会一直打开,直到cin得到某个字符(有的环境会在程序运行完后自动关闭窗口)。

1.2  头文件名和名称空间

    我们知道在C语言中,头文件一般用.h表示,C++改变了这种用法,对老式的C头文件保留了扩展名h,C++仍然可以使用这种文件,而C++的头文件没有扩展名,有些C头文件被转换为C++头文件,去掉了.h,同时在文件名称前面加上'c',比如math.h在C++中可以这样引用:include <cmath>。然而去掉h并不只是为了好看,这些头文件也可以包含名称空间。

    一个中大型软件往往由多名程序员共同开发,会使用大量的变量和函数,不可避免地会出现变量或函数的命名冲突。当所有人的代码都测试通过,没有问题时,将它们结合到一起就有可能会出现命名冲突。比如宁使用A,B两个已经封装好的产品,恰好这两个产品都有play()这个函数,如果直接使用play(),编译器将不知道使用哪个产品,而使用名称空间可以将各自的函数放在不同的名称空间中。

    这里我们需要了解“::”这个控制符,它表示作用域访问符,宁想使用A的play()函数,就可以将play()的定义放到一个名为A的名称空间中;这样就可以使用名称空间来区分不同的版本了:A::play(),B::play()。其实类,函数,变量都是C++的标准组件,它们都在名称空间std中。这意味着cout全称是std::cout,而endl实际上是std::endl。

    然而多数用户不喜欢将引入名称空间之前的代码。using编译指令就是为这而生的,using namespace std这段代码表明,可使用std名称空间中的名称,不加std::前缀,如果你想只需要使用的函数不加前缀,可以这样表示: using std::cout;using std::endl。

1.3  main()函数

    每个函数都应包含函数头函数体两部分,每个C/C++程序都应以main函数作为入口。函数头中int表示返回值类型,main表示函数名称,小括号代表传入的形参类型。此时main函数括号为空,代表不接受任何传递的信息,或者mian不接受任何参数。return 0,代表返回的值对应函数头的int。

    需要注意的是:main()一般都是空括号,但不代表main不能接收参数(argument),main程序是可以接收参数的,一般是这种格式-->:int main(int argc,char* argv[]);argc表示在终端执行该程序时传入参数的个数, argv是一个指针数组,该数组存放了对应顺序的具体参数,如下:

点击查看代码
#include <iostream>
using namespace std;

int main(int argc,char* argv[])
{
	if(argc < 2){
      	cout << "缺少参数" << endl;
      	return -1;
    }
  	else if(argc == 2){
      	cout << "成功运行" << argv[0] 
	<< "+" << argv[1] << endl;
    }
  	else{
    	cout << "参数过多" << endl;
      	return -1;
    }
	return 0;
}

这里我用Windows环境下的Dev-C++编译运行这个程序:(Linux下通过终端输入./main 2也可以实现)

 

直接运行效果:

这次我们加上参数:

结果就是这样:

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/hbnb/p/15604851.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!