c++第一章

一个程序中必须含有一个main函数,函数包括返回类型,函数名,形参列表(可以为空),和函数体。其中的return语句返回一个值,该返回值的类型必须和函数的返回类型相容。其中main函数的返回值用来指示状态,返回值为0表示成功。
经常使用iostream标准库,其中很多次用到cin和cout,iostream库包含两个基础类型istream和ostream分别表示输入流和输出流。一个流就是一个字符序列。标准库定义了4个IO对象,一个是cin的istream类型对象;一个cout的ostream类型的对象;一个cerr的ostream类型的对象,输出警告和错误信息;一个clog的ostream类型的对象,输出程序运行时的一般性信息。

include<iostream>

通常情况下#include指令必须出现在所有函数之外,一般将一个程序的所有#include指令都放在源文件的开始位置。

对于包含标准库的头文件时,使用<>尖括号包围头文件;对于不属于标准库的头文件时,用" "双引号来包围。

std::cout << "enter two numbers:" << std::endl;

<< 运算符接收两个运算对象:左侧运算对象必须是一个ostream对象,右侧的运算对象是要打印的值。

<<运算符将给定的值写到给定的ostream对象中,输出运算符的计算结果就是其左侧运算对象,即写入给定值的那个ostream对象std::cout。

这样运算符返回其左侧的运算对象,第一个运算符的结果成了第二个运算符的左侧运算对象,等同于:

std::cout << "enter two numbers:";
std::cout << std::endl;

一对用双引号引起的字符序列是一个字符串字面值常量。在双引号之间的文本被打印到标准输出

endl的作用是结束当前行,并将与设备关联的缓冲区中的内容刷到设备中。

默认情况下,读cin会刷新cout ,程序非正常终止也会刷新cout. 而写到cerr的数据是不缓冲的。写到clog的数据是被缓冲的,clog通常用于报告程序的执行信息,存入一个日志文件中

这里再来看std::cin和std::cout。前缀std指出名字cin,cout,endl是定义在名为std的命名空间中。标准库定义的所有名字都在命名空间std中。
麻烦的是什么呢?,通过命名空间使用标准库有副作用:当要使用标准库中的一个名字时,必须显式说明使用来自std命名空间的名字。如通过使用作用域运算符(::)指明想使用定义在命名空间std的名字cout--------std::cout
更简单的使用方法是在所有函数前面写上:using namespace std;

std::cin >> v1 >> v2;

输入运算符和输出运算符类似,接受一个isream作为左侧运算对象,接受一个对象作为其右侧运算对象,从给定的istream读入数据,并存入给定对象中。而且输入运算符返回其左侧运算对象作为其计算结果,所以可以写成:

std::cin >> v1;
std::cin >> v2;

注释和C语言一样,单行是//,多行是界定符对(/* 和 */),注释界定符不能嵌套。注释的最好的方式就是用 // 单行注释方式注释代码段中的每一行。

读取数量不定的输入数据

while (std::cin >> value)

当我们使用一个istream对象作为条件时,效果是检测流的状态。当遇到文件结束符或一个无效的输入时,istream对象的状态就会变成无效,处于无效状态的istream对象使条件变为假结束循环。(Windows下输入文件结束符是用Ctrl+z可以结束)

//统计在输入中每个值连续出现了几次
#include<iostream>
int main(){
	//currval是我们正在统计的数,将读入的新值放入al中
    int currval = 0, val = 0;
    //读取第一个数,确保确实有数据可以处理
    if(std::cin >> currval){
        int cnt = 1;          //保存正在处理的当前值的个数
        while(std::cin >> val){    //读取剩下的数
            if(val == currval){
                ++cnt;             //值相同就将cnt加1
            }
            else{                       
                std::cout << currval << "出现" << cnt <<"times" << std::endl; //否则打印前一个值的数
                currval = val;     //记住新值,并重置cnt
                cnt = 1;
            }
        }
        std::cout << currval << "出现" << cnt <<"times" << std::endl;     //while循环截止,打印最后一个数的个数
    }
    return 0;
}

结果
接下来是c++中很重要的一个概念:类。
我们可以通过定义一个类来定义自己的数据结构,一个类定义了一个类型以及相关联的一组操作。
每个类实际上都定义了一个新的类型,其类型名就是类名。标准库中如istream,ostream都是类。

Sales_item item

说明item是一个Sales_item类型的对象,或者说成“一个Sales_item对象”

item.isbn()		//调用名为isbn的成员函数

成员函数是定义为类的一部分的函数,也称为方法。
我们可以使用(.)点运算符来表达,点运算符只能用于类类型的对象。左侧运算对象必须是一个类类型的对象,右侧运算对象必须是该类型的一个成员名。运算结果是右侧运算对象指定的成员。
使用()调用运算符来调用一个函数,括号里放实参列表(可能为空)。

最后注意未初始化变量就是未赋予初值的变量,类类型的变量如果未指定初值,按类定义指定的方式进行初始化。定义在函数内的内置类型变量默认是不初始化的,除非有显式的初始化语句。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值