阅读:5393回复:18
C++ 入门教程 转自 “杰物”
首先,这是一份关于C++的入门教程,不会讲特别深的东西,一般的人应该都能听懂。
在你看到这个贴子的时候,不管你有没有学过其他语言,是为什么学这个,是男是女还是人妖,年龄多少,已婚未婚……你就应该忘掉以前的一切,把自己当做一个小学一年级的学生。 好,不废话了,开始。 咦,有问题了。杰物你总说神马C++的,那些代码怎么弄成程序啊? 额……这个可以去看置顶贴,弄一个IDE吧。 (半小时后……) 好了,打开吧。新建一个C++项目,或者源文件,然后添加如下的代码: #include <iostream> int main(void) { std::cout << "I'm f**king C++!" << std::endl; return 0; } 用复制-粘贴的方式放到你的IDE里。 然后选择编译(或者生成解决方案),然后运行。你会看到在一个黑漆漆的像DOS一样的窗口里,有这样一行文字: I'm f**king C++! 这样表示你成功了!至于那单词中间为什么要有星号,不是我们讨论的问题…… 神马?根本没有什么输出结果,只看到一个黑窗口一闪而过?哦,请在"return 0;"前面加上一行"std::cin.get();",这样程序就会停在那里,然后按一下回车就结束了。(用"system("pause");" 也行,只不过Linux下貌似没有这个命令。 好了,咱们的第一个C++程序大功告成了。不过运行倒是能运行了,可是这一堆乱七八糟的符号和英文单词神马意思啊,怎么用啊?别急,下层楼告诉你。 |
|
100% |
沙发#
发布于:2016-04-30 18:56
![]() ![]() |
|
板凳#
发布于:2015-09-15 11:44
看看!!!!!!
|
|
地板#
发布于:2013-01-13 22:18
3333333333333333333333333333333333333333333333333
|
|
4楼#
发布于:2013-01-13 07:58
顶而不懈,遇到好贴决不能放过
www.hshlvy.com |
|
5楼#
发布于:2013-01-06 16:50
楼上的稍等啦
|
|
6楼#
发布于:2012-03-14 23:24
{:soso_e179:}
|
|
7楼#
发布于:2011-12-23 23:03
安装程序都没教就开始教教程了啊
|
|
8楼#
发布于:2011-12-23 21:23
- 30
1.考虑过这个,不过此“关键字”不是C++标准概念中的“关键字”。 2.sorry,这个我没有自己试。 3.我当时觉得没必要,说到字符串的时候再来提吧。 |
|
|
9楼#
发布于:2011-12-23 21:22
注意,百度会吃掉4空格以上的缩进,所以我的缩进要是被吃了,你懂的。当然,你也可以根据自己的喜好弄2空格缩进或者Tab缩进。
|
|
|
10楼#
发布于:2011-12-23 21:21
在尝试了很多很多种变量的组合和大量的输入输出后,你还是会觉得乏味。
当然,为什么程序只能一条路走到黑啊?不会变通吗?我告诉你,可以! #include <iostream> using namespace std int main(void) { unsigned weight; //为什么是unsigned?难道你体重是负的? cin >> weight; if (weight > 80) { cout << "Fat man!" << endl; } else { cout << "Just so so!" << endl; } return 0; } 首先你把这个程序复制粘贴到你的IDE里,然后编译。咦?这次怎么没以前顺利了?我的VC2008是这样提示的: 错误 1 error C2144: 语法错误 : “int”的前面应有“;” d:\\my documents\\visual studio 2008\\projects\\cplusplus\\test\\test\\main.cpp 4 杰物,你TM傻x啊,给老子错的程序,肯定有人心里会这样想。不过编译器都仁至义尽了,该你自己解决了。人家说"int"前面缺分号,你就加上一个呗。 ;int main(void) 不过这样怎么看怎么别扭,还是移到"std"后面去吧。嗯,世界清净了,程序运行了。你输入90,就说你是胖子,你输入50,就说你Just so so。不错,不错。 关于if和else……我开讲语法了。 if判断语句的格式是 if (condition) { // 当满足condition时执行的语句 } else { // 当不满足condition时执行的语句 } 当然,如果看不惯,大可不必像我这样。你同样可以 if(conditon) { //语句 } else {//语句 } 代码写得如何,那是你的自由。写得太烂被人骂,同样是你的自由。我无权干涉。 当if或者else里的语句只有一条的时候,可以不写大括号。当然,我习惯一直写,而且是这样写。 如果要满足多种情况判断的时候,还可以有else if子句。 if (condition1) { // 语句1 } else if (condition2) { // 注意不要发生逻辑错误 // 语句2 } else { // 语句3 } 基本语法说的就这么多…不过有一个很重要的问题,也是许多熟悉C/C++的程序员常犯的错误,那就是"Hanging else"(悬挂的else)。这是神马?有代码,有真相。 if (age < 30) if (weight > 75) // xxx else // xxx 把这段代码按照这样的缩进格式按自己的喜好补充,注意xxx那里只能填一行代码,因为没有大括号。你会发现这个程序的运行结果并不如你所料——其实else是和第2个if配对的!编译器只会让else和最近的if配对。要避免这种情况的发生,就是统统写大括号。 if (age < 30) { if (weight > 75) { // xxx } } else { // xxx } 这样就好了嘛。 最后补一句忘了说的话。C++可是区分大小写的,你定义了变量age,它可不认识Age! |
|
|
11楼#
发布于:2011-12-23 21:21
当你写了许许多多的输入年龄或者体重输出句子,或者来骂人的程序之后,你是否觉得厌倦了呢?好吧,我们现在就只有int cout cin这3个主要的关键字,当然会倦。所以还是得好好学啊……
你肯定会想到,要是我输入的数不是整数,而是小数呢?比如我要计量的不是和我在一起的MM数,而是我的私房钱在银行存款的利率呢?别急,你能想到的,C++的设计者们也会想到。所以除了int类型之外,标准还定义了float和double这两种变量类型来表示小数。有神马区别?好好好,告诉你吧,这可是独家。 首先说在计算机中小数不叫小数,叫浮点数。在32位的系统上(这个不明白的自己Google下),一个int默认占4字节,float占用内存4字节,而double由于吃多了太胖,要占8字节的内存。由于计算机复杂的浮点数表示方式(这个要扯能扯几天几夜),浮点数的精度总会有或多或少的丢失,而由于double占空间多,所以和float相比也就精确得多。如果不是特别省内存的情况下,尽量用double,float在运算过程中会转换成double计算再转换回double,造成额外的运行时耗费。 不知道你听懂上面的话没?没听懂算了,只需要忘掉float吧,它不适合你。 #include <iostream> using namespace std; int main(void) { double x; cin >> x; //cin也是啥都能吃 cout << x * x << endl; return 0; } 程序的意思显而易见,是求输入x的平方。同样你可以把这个乘号改成加、减、或除,注意C++中没有乘幂符号"^",怎么乘方以后再说。不过我也不会蛋疼到输出个x - x……于是到这里你可以用double或int结合cin、cout完成最最基本的带用户提示的小程序了。 最后给你个C++基本类型表,你可以结合使用。 int 整数 4字节 double 双精度浮点数 8字节 float 单精度浮点数 4字节 char 单个ascii字符(通俗点就是基本的英文键盘字符) 1字节 wchar_t 宽字符(可以装下一个汉字) 2字节 bool 布尔值(取值只能是true或者false,用法你懂的) 1字节 然后在前三种类型面前可以加unsigned表示,使其不能表示负数。 |
|
|
12楼#
发布于:2011-12-23 21:20
- 24
刚学的时候我一直年“靠特”,后来偶尔看到一个视频教程,念的是“sei ao te” |
|
|
13楼#
发布于:2011-12-23 21:20
- 19
我等平凡人是从Hello,world学起的,不是从神马基类派生类虚函数入门的,您好好看看标题吧。 |
|
|
14楼#
发布于:2011-12-23 21:20
看完上面我又臭又长的叙述之后,你会在程序里把你讨厌的人都f**k了吧。不过今天我们这个程序要实现更高级的功能。请看:
#include <iostream> using namespace std; //前面讲的,嘿嘿 int main(void) { int age; cin >> age; cout << "You are " << age << " years old." << endl; cin.get(); //这句是为了避免一闪而过,VC用户可以无视 return 0; } 好了,编译,运行。咦?怎么一个字也没有,停着不动啊。别急,你输入个"13"(不包括这个引号),再按回车。哈哈,它神奇的输出了"You are 13 years old."。 这段代码惟一让你有疑惑的就是第六行和第七行。我们把第六行这种语句叫做“定义变量”,当然很多人也习惯叫它“声明”,不过为了与后面的“声明”区别开来,我还是统一叫它为“定义”。这句话用自然语言表述就是定义了一个变量,名字叫age(这单词你不认识?Google一下!),类型为int(Integer,整数,不过你要是写Integer编译器可不认识)。什么是变量?就是你内存里的一块空间,在你这个程序运行的时候,你变量所对应的内存空间就是属于你的程序的。那电脑怎么知道哪块内存是属于你程序,哪块内存是属于你AV播放器的呢?这里要用到内存地址的概念,指针这一节的时候会详细说它。变量的名字可以随便取,和函数命名的规定一样,不过要注意不能和函数或其他变量重名。 那么,更为重要的是,我们为什么要写这样一句话?我们先对这个程序的功能作出分析: 1.能得到用户的一个输入,输入的值表示一个年龄。 2.能输出"You are xx years old."这句话,其中的"xx"表示程序用户输入的年龄。 别笑,很多大程序也是这样分析的。因为要接收用户的输入,而我们不知道这个值是多少,所以需要一个"可以变的量"嘛。这个变量的类型是整数,可以是负整数。当然,这个变量是有取值范围的,至于这个取值范围是多少,嘿嘿,你活不到那么大(其实是我忘了……)。当然,没人的岁数是负的。所以我们可以在"int"前面加上一个"unsigned",意思是"无符号整数",直接写"unsigned"也行,这种变量的最小可取值是0。 搞了半天弄清楚了这句变量定义的原因和作用。下面是一个特别猛的语句:"cin >> age;"。"cin"和"cout"长的很像,就是双胞胎,不过一个负责输出,一个负责输入。这句话的意思能明白吧,就是把用户在窗口上的输入的值给变量age。你可以理解成"用户倒的H2O通过各种线路流到了变量age里"。然后我们才知道了用户到底想说什么。是不是觉得很神奇! 还有放在语句后的"//",这后面的内容表示注释,是给人看的,不是给编译器看的。从一行的"//"开始一直到换行,都算作注释,在高亮的IDE里面会用特别的颜色(通常是绿色和蓝色)显示。 cout可以既输出变量的值,也可以输出字符串(一串字符)的值。也就是说它什么都能吃,你神马都能往这里面倒,什么硫酸啊、过氧化氢啊……它统统给你输出到那个黑框框里。当然,我觉得这样很蛋疼,你还可以这样写(仅供参考): #include <cstdio> using namespace std; int main(void) { int age; scanf("%d", &age); printf(""You are %d years old.\\n", age); return 0; } 这样写很麻烦,但比较简洁。原理?我不告诉你,嘿嘿。 |
|
|
上一页
下一页