C++学习之旅记录hello world
2016-04-01 14:04
239 查看
一个很有意思的故事,有一个程序员老了,闲来无事的他开始找自己的兴趣爱好。他发现写毛笔字是一个非常不错的休闲娱乐方式,于是它买来了文房四宝。然后准备好一切就绪工作,大笔一挥写下了一个字符串“hello world!”哈哈,我还是来写我的第一个 C++ hello world 吧
从输入输出开始
c++提供了两个用于处理输入和输出的预定义对象(cin和cout),他们分别是istream和ostream类的实例,这两个类是在iostream文件中定义的
类比C语言
以上两个代码的执行效果是一样的。
以上两个代码的执行效果是一样的。
需要注意的是
控制符endl //它是endl不是end1.在我的编译器下字体一模一样。我就给看错了
上面提到一个名称空间的概念:下面介绍一下
从输入输出开始
c++提供了两个用于处理输入和输出的预定义对象(cin和cout),他们分别是istream和ostream类的实例,这两个类是在iostream文件中定义的
#include <iostream> //头文件、也叫包含文件 int main() { using namespace std; //编译指令 cout << "hello world!" << endl; //这里是endl不是end1 return 0; } gcc hello.c ./a.out
类比C语言
#include <stdio.h> int main() { printf("hello world!\n); return 0; } g++ hello.cpp ./a.out
以上两个代码的执行效果是一样的。
#include <iostream> int main() { using namespace std; int num; cin >> num; cout << num << endl; return 0; }
#include <stdio.h> int main() { int num; scanf("%d", &num); printf("%d\n", &num); return 0; }
以上两个代码的执行效果是一样的。
需要注意的是
在C语言中我们常使用的scanf、printf都是包含在stdio.h标准输入输出头文件中而在C++中,从概念上,输出是一个流,即从程序流出的一系列字符。cout对象表示这种流,其属性是在iostream文件中定义的。cout的对象属性包含一个插入操作符 (<<)它可以将其右侧的信息插入到流中。因此下面的语句
cout << "hello world."; //注意分号
将把字符串“hello world." 插入到输出流中。因此,与其说程序显示了一条消息,不如说它将字符串插入到了输出流中。细心的人会发现 << 和我们在C语言中的左移操作符一样。其实这是一个重载的例子。通过重载,同一个操作符将会有不同的含义。编译器会根据上下文来确定操作符的含义。C本身也有这样的例子。比如 * 既可以在算术运算符中表示乘号,也可以用作指针
控制符endl //它是endl不是end1.在我的编译器下字体一模一样。我就给看错了
cout << endl; //endl是一个特殊的C++符号。表示一个很重要的概念:重起一行。在输出流中插入endl将导致屏幕的光标移到下一行的开头。诸如endl等对于cout来说有特殊函数的特殊符号被称为控制符。和cout一样,endl也是包含在iostream中定义的,且位于名称空间std中。 //C++其实也支持这种写法 cout << "\n"; //两者一样的效果,看个人喜好
上面提到一个名称空间的概念:下面介绍一下
std 是一个命名空间,不同的命名空间可以有相同的类名被定义。 using namespace std;就是指明下面的程序使用std 如果不用这句指明的话就要用std::string string是std空间中定义的也可以在全局空间中定义,只要名字空间不一样即可..)..否则可以默认名字空间中有std.便不用std::来修饰它是C++新标准中有的,解决多人作编大程序时名字冲突问题。 比如A B两个班都有叫张三的人,你要使用A班的张三,必然要先指名是A班这个名字空间(namespace),然后你对张三的所有命令才能达到你的预想,不会叫错人 如果你用#include<iostream.h>就不需写这句话(旧标准)。但是如果你#include<iostream>就必须要写。
相关文章推荐
- 第1周 C语言及程序设计初步 例程1- if语句的嵌套
- ZooKeeper概述
- c++ 大数相加
- C/C++头文件版本演变
- C++STL容器(lower_bound,upper_bound)
- c++作业2
- C++实验2-模拟银行
- C/C++—— C++中一个空对象为什么还要占用一个字节空间
- C++:移动构造和移动赋值
- C++之类型转换
- 移动构造-C++11
- C++中结构体和类型的sizeof()
- C++ 大数模板
- Visual C++(MFC)实现C/S
- 1152: 【C语言训练】计算:t=1-1/(2*2)-1/(3*3)-...-1/(m*m)
- 2016蓝桥杯C/C++A组填数字
- VC++中,如何定义callback函数和它的触发事件?
- 利用享元模式模拟网站对象建立 C++
- C++ 使用开源库里.h文件和.lib文件的步骤
- 使用C语言解析URL