C++ primer 学习笔记——第一章

int main()          // int ——返回类型   main——函数类型 ()——形参列表
{
    return 0;       // {}内 —— 函数体
}

大多数系统中,main的返回值用来指示类型。

return 0;        //成功
return (非0);    //含义由系统定义 通常指出错误类型 

 C++语言没有定义任何输入输出语句,通过包含全面的 标准库 提供IO机制。

cin    //标准输入
cout   //标准输出

#include <iostream>            //每个使用标准库设施的程序必须包含相关的头文件

iostream库包含两个基础类型 istreamostream 表示输入流和输出流 一个流就是一个字符序列

cin 为 istream类型的 对象


std::cout << "Enter two numbers" << std::endl;     // (<<)——输出运算符

endl    //操纵符   结束当前行 并将相关联的缓存区内容刷到设备中(清空内存)

(<<)运算符 接受两个对象

ostream对象  << 要打印的值


std::cout         //(:)——作用域运算符
//编辑器从左侧的命名空间中寻找右侧的名字

在 std 的命名空间中的,命名空间可以避免名字定义冲突,以及使用库中相同名字导致的错误;

using std::cout;       //using声明 之后就可以直接访问命名空间中的名字
//前例可改为:
cout << "Enter two numbers" << endl;   //完全等价

注意:1.用的的每个名字都必须有自己的声明语句           2.头文件中不应该包含using声明(头文件的内容会拷贝到其引用的文件中去,导致所有的文件都会有这个声明,可能造成未知的名字冲突)


/*     (希望注释内容)
       /*   */(希望注释内容) */
(希望注释内容)*/                        //此行注释会失效


// /*                     //此行注释失效 
(希望注释内容)
*/

注释 注意事项:1.注释界定符(/*…………*/)不能嵌套

2.单行注释(//)会将任何内容忽略(包括注释界定符)

3.在注释跨越多行时,我们使用风格如下:

#include <iostream>
/*
 *        
 *    注释内的每一行都用一个 * 开头
 *    从而指出整个范围都是多行注释的一部分
 *
*/

int value = 0, sum = 0;
while (cin >> value)            //istream对象作为条件,其效果为检测流的状态
	sum += value;
cout << sum;

输入运算符(<<) 返回其左侧运算对象(即istream)作为其计算结果。

当遇到 文件结束符 无效输入时,istream对象状态变为无效。条件变假。

(Windows中,文件结束符(end-of-file)为 Ctrl+ Z,连击 Enter


连续输入istream流会导致之后输入流无法输入,解决办法:

1、当cin接收到错误输入后,其状态会被改变,不再接收输入,只有用cin.clear()将cin的goodbit复位之后,才能正常接收输入。 
2、输入时键入的Enter也会被存储在缓冲区中。

int value = 0, sum = 0;
while (cin >> value)
	sum += value;
cout << sum << endl;    //使用Ctrl+Z 结束

cout << cin.eof() << cin.fail() << cin.bad() << cin.good() << endl;			//0 1 0 0	    

std::cin.clear();		//清除cin流 并设置goodbit状态位 由于它是默认参数 所以不需显示传递
std::cin.ignore();      //把回车(包括回车)之前的所以字符从输入缓冲(流)中清除出去

cout << cin.eof() << cin.fail() << cin.bad() << cin.good() << endl;        //0 0 0 1

int currval = 0, val = 0;
if (cin >> currval)       //可以再次使用输入流

这里牵扯到一个概念:条件状态。IO标准库管理一系列条件状态(condition state)成员,用来标记给定的IO对象是否处于可用状态,或者碰到了哪种特定的错误。


类介绍——C++重要特性之一:

每一个类实际上都定义了一个新的类型,其类型就为类名。与内置类型一样,可以定义类类型的变量。

Sales_items item;            //item是一个Sales_item类型的变量

通常将 “一个Sales_item类型的对象” 简单说成 “一个Sales_item对象”

类Sales_item的作者定义了类对象可以执行的所有操作。


if (item1.isbn() == item2.isbn() )          //以一个类对象的名义调用成员函数

调用名为 isbn 的 成员函数:定义为类的一部分的函数

点运算符(.) 表达需要“名为item的对象的isbn成员”,点运算符只用于类类型的对象【结构必须为:类类型对象.成员名】

调用运算符(()) 表达调用函数,放置实参(argument)列表。


术语表:

头文件(header):使类或其他名字的定义可以被多个程序使用的一种机制

iostream头文件:提供了面向流的输入输出的标准库类型

标准库(standard library):一个类型和函数的集合,每个C++编译器都必须支持。标准库提供了支持IO操作的类型。C++程序员倾向于用“库”代指整个标准库,还倾向于用库类型表示标准库的特定部分。例如 用“iostream库”表示标准库中定义IO类的部分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值