(笔记)c++primer_第一章

第一章

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

每个C++程序都包含一个或多个函数,其中一个必须命名为main

一个函数的定义包含四部分:

  • 返回类型
  • 函数名
  • 一个括号包围的形参列表
  • 函数体

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

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

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

1.1.1 编译、运行程序

  • 命令行界面(大部分编译器,包括集成IDE的编译器,都会提供命令行界面)

  • 集成开发环境(Tntegrated Developed Environment,IDE)

程序源文件命名约定

大部分编译器都要求程序源码存储在一个或多个文件中。程序文件通常被称为源文件(source file)
大部分系统中,源文件名字以一个后缀结尾。后缀告诉系统这个文件是一个c++程序。不同编译器使用不同的后缀名约定,最常见的包括.cc,.cxx,.cpp,.cp及.c。

从命令行运行编译器

使用命令行界面,通常一个控制台窗口内编译程序。
假定main程序保存在文件prog1.cc中,编译命令为:

$ CC prog1.cc
  • CC是编译器程序的名字,$是系统提示符
  • 编译器生成一个可执行文件(Windows系统将这个可执行文件命名为prog1.exe)

在Windows中运行可执行文件,需要提供可执行文件的文件名,可以忽略其扩展名.exe:

$ prog1

在一些系统中,即使文件就在当前目录或文件夹中,也必须显示指出文件位置:

$ .\prog1

访问main返回值的方法依赖于系统。在UNIX和Windows系统中,执行完一个程序后,都可通过echo命令获得返回值。
在Windows系统中查看状态:

$ echo %ERRORLEVEL%

最常用的编译器是GNU编译器和微软visual studio编译器。
默认情况,运行GNU编译器命令时g++:
>$ g++ -o prog1 prog1.cc
$是系统提示符。-o prog1是编译器参数,指定了可执行文件。在Windows系统中,此命令生成一个名为prog1.exe的执行文件。如果省略了-o prog1参数,则会生成一个名为a.exe的可执行文件。
裕兴微软visual studio2010编译器的命令为:
>C:Users\me\Programs>/EHsc prog1.cpp
C:Users\me\Programs>是系统提示符,/EHsc是编译器选项,用来打开标准异常处理。生成的可执行文件也为prog1.exe。
编译器通常包含一些选项,能对有问题的程序结构发出警告。习惯在GNU编译器中使用-Wall选项,在微软编译器中使用/W4。

1.2初识输入输出

C++未定义任何输入输出语句,而是包含了一个全面的标准库来提供IO机制。
iostream库
iostream库包含两个基础类型:istream和ostream,分别表示输入流和输出流。
一个流就是一个字符列,从IO设备独处或写入IO设备。

标准输入输出对象

标准库定义4个IO对象:

  • cin(istream类型对象),也被称为标准输入
  • cout(ostream类型),标准输出
  • cerr,输出警告和错误消息
  • clog,输出程序运行时一般性信息
一个使用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;
}

#include < iostream >
使用iostream库,<>中的名字指出了一个头文件。每个使用标准库设施的程序都必须包含相关头文件。一般讲一个程序的所有#include指令都放在源文件的开始位置。

向流写入数据

std::cout<<”Enter two numbers:”<<std::endl;
<<左侧运算对象必须是一个ostream对象,右侧是要打印的值。
<<运算符返回其左侧运算对象。

std::cout<<”Enter two numbers:”<<std::endl;
等价于
(std::cout<<”Enter two numbers:”)<<std::endl;
等价于
std::cout<<”Enter two numbers:”;
std::cout<<std::endl;

endl是一个被称为操纵符的特殊值,写入endl效果是结束当前行,并将于设备关联的缓冲区中的内容刷到设备中。

使用标准库中的名字

std::指出cout,endl是定义在名为std命名空间中的。
标准库定义的所有名字都在命名空间std中。

从流读取数据

输入运算符>>接受一个istream作为左侧运算对象,接受一个对象作为其右侧运算对象。

std::cin>>v1>>v2;
等价于
(std::cin>>v1)>>v2;
等价于
std::cin>>v1;
std::cin>>v2;

1.3 注释简介

注意:
+ 注释界定符不能嵌套
+ 单行注释符中任何内容都会被忽略,包括嵌套的注释对

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值