C++ Primer 学习笔记 第一章 开始

main函数的返回类型必须为int型。

一种类型不仅定义了数据元素的内容,还定义了这类数据上可以进行的运算。

IDE(Integrated Developed Environment)为集成开发环境。

根据编译器不同,常见源文件后缀有:.cc/.cxx/.cpp/.cp/.C

命令行运行源文件命令:
GNU:g++
微软Visual Studio 2010:c1

C++并未定义IO语句,其包含一个标准库提供IO机制,如iostream:

#include <iostream>

这个库包含两个基础类型:istream和ostream表示输入输出流,一个流是一个字符序列。输出时用名为cout的ostream(标准输出)类型对象,输入时用名为cin的istream(标准输入)类型对象。
还有两个ostream类型对象,分别为cerr(标准错误)和clog,前者用来输出警告和错误信息,后者用来输出程序运行一般性信息。

使用库:

#include <iostream>     // 标准库
#include "lib.h"        // 自己写的库文件

此命令出现在函数体外,其中iostream是头文件(header),#include和头文件名必须出现在同一行。

输出:

std::cout << "ssssss" << std::endl;

<<运算符左侧是一个ostream类型对象,右侧是要输出的内容。endl是操纵符,效果是结束当前行,并将与设备关联的缓冲区的内容刷到设备中,刷新操作保证目前为止程序产生的输出都真正写入输出流中,而不是仅停留在内存中等待输出流。效果为输出后换行。

在调试时常添加打印语句,这类语句应保证一直刷新输出流,否则可能程序崩溃后输出还存在缓冲区中,从而影响对程序崩溃位置的错误推断。

std是命名空间,可以避免名字定义冲突,标准库定义的所有名字都在命名空间std中。但这样做的坏处是每次使用标准库中的名字时要显式说明命名空间,::即为作用域运算符,也可以指定默认命名空间:

using namespace std;

注释:

//单行注释

/*
 *我是
 *多行
 *注释
*/
int value,sum = 0;
while(cin >> value){
    sum += value;
}

以上代码表示从标准输入读取下一个数,当我们使用一个istream对象作为条件时,效果是检测流的状态,如果流是有效的,即流未遇到错误,那么检测成功,遇到文件结束符或无效输入(如输入的值不是一个整数)时,istream对象状态变为无效,即条件为假。

以上代码中:
输入浮点数时,结果会加上浮点数的整数部分,然后循环跳出。
输入字符时,会直接得出输入字符之前输入的所有合法整数的和,然后循环跳出。

文件结束符:Windows下Ctrl+Z然后Enter或Return键。UNIX和Mac OS X下Ctrl+D。

以下代码对按顺序输入的整数值进行计数:

#include<iostream>
using namespace std;

int main(){
	int currVal,val,cnt = 1;
    if(cin >> currVal){
    	while(cin >> val){
    		if(val == currVal){
    			cnt++;
			} else {
				cout << currVal << " occurs " << cnt << " times." << endl;
				cnt = 1;
				currVal = val;
			}
		}
		cout << currVal << " occurs " << cnt << " times." << endl;
	}
	return 0;
}

其中第一个if的条件保证输入不为空,并把第一个值保存在currVal变量中。cnt统计每个数值出现的次数。用while反复从标准输入中读取下一个整数。

一个类定义了一个类型,以及与其关联的一组操作。我们需要使用头文件来访问自己定义的类,习惯上,头文件根据其中定义的类的名字来命名,通常用.h作头文件后缀,也有人习惯用.H/.hpp/.hxx。c++标准库头文件通常不带后缀。

成员函数调用方法:

Sales_item item1;  // Sales_item类型变量
item1.isbn()

点运算符只能用于类类型对象,左侧运算对象是一个类类型的对象,右侧运算对象是该类型的一个成员名。我们使用点运算符访问一个成员函数时是想调用该函数,使用调用运算符()来调用一个函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值