int main() // int ——返回类型 main——函数类型 ()——形参列表
{
return 0; // {}内 —— 函数体
}
大多数系统中,main的返回值用来指示类型。
return 0; //成功
return (非0); //含义由系统定义 通常指出错误类型
C++语言没有定义任何输入输出语句,通过包含全面的 标准库 提供IO机制。
cin //标准输入
cout //标准输出
#include <iostream> //每个使用标准库设施的程序必须包含相关的头文件
iostream库包含两个基础类型 istream 和 ostream 表示输入流和输出流 一个流就是一个字符序列
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类的部分。