对比Java来学C++01:C++中的输入输出cin和cout
本文由CC原创,归纳总结自身的学习经验,转载请标明:http://blog.csdn.net/oktears/article/details/12856791
之前的两年,大一和大二的大部分时间和精力都用在java上了,先后做了一些javaEE项目和Android应用,虽然收获很大,但内心还是一直想做游戏开发的,最近终于下定决心要转到游戏开发这条道路上来,无论是做pc游戏还是手游c++都是首选,所有花了一些时间来啃c++,《C++Primer Plus》第五版这本书对于初学者还是不错的,我就是照着这本书上进行学习的,很多代码也是参考这本书上的,在这里推荐给大家。好在有java的基础,学习c++并不是一件非常困难的事情,在这里把自己的c++学习历程拿出来和大家分享一下,希望能对想从java转到c++的同学以帮助。在文章中我会大量通过java与c++的对比来进行讲解,让大家可以更好更快的理解c++。我对于c++来说也是一个新手,如果文章中有什么错误或不足,还麻烦大家能够指出,在此谢谢大家。

好了废话不多说,今天我们来讲讲C++中最简单的 输入cin 和 输出cout。
首先我们先看一段熟悉的Java代码:
下面实现同样的功能,对应的C++代码
总结一下这个小程序的知识点:
0、c++与java相同,程序的入口都是main函数,不过main函数的返回值略有不同,java返回void类型,c++则返回一个int类型,一般返回0。
1、在c++中 使用cout << 来进行打印输出, << 右侧的内容可以是变量或者常量, 在java中则使用System.out.println();
2、在c++中 使用cin >> 来接收控制台输入的数据,>>右侧的内容一般为已经声明的变量,在这里起到一个通过键盘输入给变量赋值的效果,在java中则使用Scanner类来进行控制台的输入。
3、c++里允许在一行代码中连续多次使用 << 或者 >>来做连续的输出和输入
例如程序中的:
string name;
int age;
cin >> name >> age;在命令行输入的时候, 判断输入一个变量的内容是否以完毕用“空格”来区分 ,也就是说我们输出cc空格21,cc就赋值给了变量name,21则赋值给了变量age。
或者用“回车”也可以,cc回车就将cc赋值到变量name,然后输出21回车就将21赋值给变量age了。
4、大家可能注意到了,在cout<< 的最后面有一个 endl, endl是end line,代表换行的意思,注意最后是 L的小写 而不是1,在java里则使用print()和println()这两个方法来进行区分是否要换行。
5、在c++中 使用string类来处理字符串数据,在java中使用String类,这个类提供了常用的字符串操作,与java的有很多相似之处,比如字符串连接可以直接用+号,后面还要重点的讲解它,注意c++的string首字母是小写。
6、c++的命名规范中相比java来讲没有很统一的规范,似乎并不要求类名必须首字母大写,就像上面我们用到的string类,首字母就是小写。
另外:
使用cout,cin和endl 需要引入头文件 #include <iostream>
关于 头文件和namesapce的使用,我会在下次进行重点讲解。
我用的编译器是VS2010,项目为win32控制台程序,在程序中需要引入#include "stdafx.h"才能运行,这是个做预编译处理的头文件,如果使用其他编译器应该就不需要引入它了~使用VS2010调试win32程序的时候还会出现命令行窗口闪退的情况,是因为main函数很快就执行完了,我们来不及在命令行窗口看到输出的结果,解决办法:只需要在main函数中的retain 0;处加一个断点就ok了。在vs中加断点和在eclipse中方法是一样的,如下图所示:
好啦,这一篇就讲解到这里吧,在下一篇中将讲解c++中的namesapce和.h两个很重要的概念。
