C++ Primer 5 笔记 第一章 开始

C++ Primer 第5版 中文版

第一章 开始
在大多数系统中,main的返回值被用来指示状态。返回值0表示成功,非0值得含义由系统定义,通常用来指示错误类型。与之不同的是,在if、while等条件判断中,0假,非0真。

在windows系统中运行一个可执行文件有时需要显示的指示出文件的位置,在此情况下,我们可以键入
.\prog1
"."后跟一个反斜线指出文件在当前的目录中。

根据GNU编译器的版本,可能需要指定-std=c++0x参数来打开对C++11的支持。

编译器通常会包含一些选项,能对问题的程序结构发出警告。打开这些选项是一个好习惯。在GNU编译器中使用-Wall选项,在VS编译器中则使用/W4。

标准输入对象为cin,标准输出对象为cout。标准库还定义了其他两个ostream对象,名为cerr和clog。通常cerr用来输出警告和错误信息,clog用来输出程序运行时的一般信息。
默认情况下,读cin会刷新cout,程序非正常终止时也会刷新cout;写到cerr的数据是不缓冲的,写到clog的数据是被缓冲的。

系统通常将程序所运行的窗口与这些对象关联起来,因此当我恩读取cin时,数据将从程序正在运行的窗口读入,当我们向cout、cerr、clog写入数据时,将会写到同一个窗口。

输出运算法<<,返回左侧的运算对象作为运算结果,因此第一个运算符的结果成为了第二个运算符左侧的运算对象。std::cout<<"hello world"<<std::endl;

输入运算符>>,与输出运算符类似,返回左侧的运算对象作为运算结果,如std::cin>>v1>>v2;

错误的注释比完全没有注释更糟糕,因此当修改代码时,不要忘记更新注释。

当注释界定符/**/跨越多行时,最好能显示的指出其内部的程序行都是属于多行注释的一部分。建议采用的风格是,注释内的每一行都以一个星号*开头,从而指出整个范围都是多行注释的一部分。同时注释界定符/**/通常用于多行解释,而双斜线//注释常用于半行或者单行附注。
#include<iostream>
/*
*简单主函数
*读取两个数,求他们的和
*/
int main()
{
     //提示用户输入两个数
     std::cout<<"Enter two numbers:"<<std::endl;
     int v1=0,v2=0;          //保存我们读入的输入数据的变量
     std::cin>>v1>>v2;     //读取输入数据
     std::cout<<"The sum of "<<v1<<" and "<<v2
                    <<" is "<<v1+v2<<std::endl;
     return 0;
}

语句块,block,就是用花括号{}包围的零条或多条语句的序列。

while(std::cin>>value)当我们使用一个istream对象作为条件时,其效果是检测流的状态。如果流是有效的,即未遇到错误,那么检测成功。当遇到文件结束符,或者遇到一个无效的输入时,istream对象的状态变为无效。处于无效状态的istream对象会使条件变为假。

从键盘输入文件结束符,在windows中时敲Ctrl+Z,然后按Enter。在Unix系统中,包括Mac OS X系统中,文件结束符输入Ctrl+D。

按照错误信息报告的顺序来逐个修正错误,是个好习惯。因为一个单个的、错误常常会具有传递表效应,导致编译器其后报告比实际多得多的错误信息。另一个好习惯是在没修正一个错误后就立即重新编译代码,后者最多是修正了一小部分明显的错误就重新编译。这就是正所谓的“编辑—编译—调试”周期。

使用文件重定向 prog <infile >outfile ,命令会从一个名为infile的文件读取数据,然后将输出结果写入到一个名为outfile的文件中。两个文件都位于当前目录中。

点运算符"."只能用于类类型的对象,其左侧必须是一个类类型的对象,右侧必须是该类型的一个成员名,运算结果为右侧运算对象指定的成员。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值