Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3042131
  • 博文数量: 167
  • 博客积分: 613
  • 博客等级: 中士
  • 技术积分: 5473
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-13 21:35
个人简介

人, 既无虎狼之爪牙,亦无狮象之力量,却能擒狼缚虎,驯狮猎象,无他,唯智慧耳。

文章分类
文章存档

2015年(19)

2014年(70)

2013年(54)

2012年(14)

2011年(10)

分类: C/C++

2013-07-10 14:20:09

一开始接触编程时就学习的C,但是当时糊里糊涂一直没有下功夫所以二级上机两次都没过,直到上了研才重新考了C++,但是应对考试的成分大些,没有实际用面向对象的思想写过多少代码。甚至后来做毕业设计向PDF文档中嵌入代码也完全使用C的面向过程来实现的,可以说心中还是有些小遗憾吧。现在工作了,幸运的是还是做着自己的本行工作,挤出一些时间来重新温习下C/C++,重点来补充下当时漏掉的知识点。这里看的资料主要是《Essential C++》,没有涉及或者讲述比较浅的后续会补充。

    昨天看了第一章,主要讲述了C++的基本知识,内建数据类型,编程的基本要素等,现在将自己感觉新的东西简单记录一下。

1. C++内建的数据类型比C扩充了bool(True | False)类型,当然也常使用string类型(#include );在原有数组类型的基础之上扩充了模板化的数组类型——vector,模板类的好处在于定义该类时不需要明确成员的数据类型,等实际使用时根据情况确定即可。

2. C++的基本输入输出库中提供了cout和cin两个对象,这是我以前一直没搞懂的,一直把它们看作函数,其实是两个C++流对象,使用时需要包含头文件:#include ;另外为了避免对象命名冲突,还需要使用using namespace std; 来划分指定命名空间。

3. 对象初始化时,对于内建数据类型和可以单一值初始化的对象可以使用传统的C赋值:int num = 0; 但是为了兼容后续的类对象类型初始化,C++也提供了构造函数语法来进行对象初始化,即:int num(0); 。

4. 两个伪随机函数rand()和srand()。

5. 文件操作看着比C要复杂一些,因为C++也是利用对象层次构建的。首先要包含#include ,写入文件时(output)要包含输出文件流对象ofstream,而读取文件时(input)要包含输入文件流对象ifstream。


一个小例子用来熟悉下C++的输入输出操作和rand()函数:

点击(此处)折叠或打开

  1. #include <iostream>
  2. #include <stdlib.h> //used to rand()
  3. using namespace std;

  4. //Please guess 0 - 10 and only 9 is

  5. int main()
  6. {
  7.     int rightnum = 9;
  8.     int usernum;
  9.     char Y_N;
  10.     cout << "Would you roll the wheel ? (Y/N)"<<endl;
  11.     cin >> Y_N;
  12.     while (Y_N == 'Y' || Y_N == 'y')
  13.     {
  14.             usernum = rand() % 11; //rand():0~32765, use % to get 0~10
  15.             if (usernum == 9)
  16.             {
  17.                         cout << "Your number is "
  18.                              << usernum
  19.                              << " and You are lucky !\n"; //It is a
  20.                         break;
  21.                         }
  22.             else
  23.                cout << "Your num is "
  24.                     << usernum <<endl
  25.                     << "Would you roll the wheel again ? (Y/N)"<<endl;
  26.     }
  27.     system("pause");
  28.     return 0;
  29. }


阅读(4667) | 评论(2) | 转发(5) |
给主人留下些什么吧!~~

windhawkgyang2014-07-08 13:22:24

cytzrs:老板,这段程序的逻辑大大的坏了吧

嗯 对的 自己当初写的时候循环部分写错了(汗!)Y_N的赋值部分应该在whie中有所体现才对,这样的程序在猜错的时候就不会陷入死循环了....
#include <iostream>
#include <stdlib.h> //used to rand()
using namespace std;
while (Y_N == 'Y' || Y_N == 'y')
    {
            usernum = rand() % 11; //rand():0~32765, use % to get 0~10
            if (us

回复 | 举报

cytzrs2014-01-23 21:58:30

老板,这段程序的逻辑大大的坏了吧