1.C++开始

本章介绍C++的大部分基础内容:类型、变量、表达式、语句及函数。

1.开始

1.1编写一个简单的c++程序

1.1.1C++程序组成

  • 一个或多个函数,其中一个必须命名为main是主函数

  • 操作系统通过调用main函数来运行C++程序

1.1.2C++函数组成

  • 返回类型

  • 函数名

  • 形参列表

  • 函数体

如:

int main(){
    return 0;
}

1.int为返回类型、main为函数名、()内为形参列表、{}内为函数体。

2.return语句包括一个值时,此返回值必须与函数的返回类型相同。

3.在大多数系统中,main的返回值被用来指示状态。返回值0表明成功,非0的返回值类型由系统定义,通常用来指出错误类型。

1.2初识输入输出

1.2.1iostream库

  • C++未定义任何输入输出语句,取而代之,包含了一个全面的标准库来提供IO机制。
  • iostream库包含两个基础类型istream和ostream,分别表示输入流和输出流。
  • 所谓“流”(stream)想要表达的是,随着时间的推移,字符时顺序生成或消耗的。

1.2.2.标准输入输出对象

iostream标准库提供了4个IO对象:

  • 标准输入istream类型对象cin
  • 标准输出ostream对象cout
  • ostream对象cerrclogcerr用来输出警告和错误信息,也被称为标准错误;clog用来输出程序运行时的一般性信息。

1.2.3一个使用IO库的程序

书店程序,将多条记录合并成单一的汇总记录。

#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;
}

开始时屏幕打印:Enter two numbers:

如果用户输入:3 7并回车

屏幕上打印输出: The sum of 3 and 7 is 10

#include告诉编译器我们想使用iostream库。<>内的名字指出了一个头文件,每一个使用标准库设施的程序都必须包含相关的头文件。

<<运算符接受两个运算对象:左侧的运算对象必须是一个ostream对象如cout,右侧的运算对象时要打印的值。计算结果是<<左侧的运算对象,即cout。

如:

(std::cout<<"Enter two numbers:")<<std::endl;
//(std::cout<<"Enter two numbers:")相当于cout

endl被称为操纵符。写入endl的效果是结束当前行,并将于设备关联的缓冲区(buffer)中的内容刷新到设备中。

程序员常常在调试时添加打印语句。这类语句应该一直保证一直刷新流。否则,如果程序崩溃,输出可能还停留在缓冲区中,从而导致关于程序崩溃位置的错误推断。

1.2.4使用标准库中的名字

  • 前缀std::指出名字cout和endl是定义在名为std命名空间中的。

  • 命名空间可以帮助我们避免不经意的名字定义冲突,以及使用苦衷相同名字导致的冲突。

  • 标准库定义的所有名字都在命名空间std中

1.3控制流

语句一般是顺序执行的:语句块的第一句语句首先执行,然后第二条语句执行,以此类推。但程序设计语言提供了多种不同的控制流语句,允许我们写出更为复杂的执行路径。

1.3.1while语句

格式:

while(condition){
    statement;
}
//满足condition条件时,循环statement语句

1.3.2for语句

格式:

for(init-statement;condition;expression){
    statement
}
//循环头包括:初始化函数init-statement、循环条件condition、表达式expression

例如:

int sum=0;
for(int val=1,val<=10;++val){
    sum+=val;
}

//等价于while的代码
int sum=0;
int val=0;
while(val<=10){
    sum+=val;
    ++val;
}

for循环的总体执行流程:

  • 创建变量val,将其初始化为1
  • 检测val是否小于等于10。若检测成功,执行for循环体。若失败,退出循环
  • 将val的值增加1
  • 重复第二步中的条件检测

1.3.3读取数量不定的输入数据

例:实现对用户输入的一组数求和。在这种情况下,我们预先不知道要对多少个数求和,这就需要不断读取数据直至没有新的输入为止:

#include<iostream>
int main(){
    int sum=0,value=0;
    while(std::cin>>value){
        sum+=value;
    }
    std::cout<<"Sum is"<<sum<<std::endl;
    return 0;
}

我们输入:

3 4 5 6 ^z 或 3 4 5 6 0.5

屏幕打印输出:

Sum is:18

1.while(std::cin>>value),while的循环条件就是执行表达式std::cin>>value。此表达式从标准输入读取下一个数,保存在value中,返回左侧对象cin。

2.当我们使用一个istream对象作为条件时,其效果是检测流的状态。==如果流是有效的,即流未遇到错误,那么检测成功。当遇到文件结束符(end-of-file)或遇到一个无效的输入时(例如读入的值不是一个整数),istream对象的状态就会变成无效。处于无效状态的istream对象会使条件变为假。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值