学习需要看书,更需要多练。
C++的主函数定义与C是相同的:
int main(){
return 0;
}
函数定义包含四部分:返回类型(return type)、函数名(function name)、一个括号包含着行参列表(parameter list,可以为空)、以及函数体(function body)。虽然main函数在某种程度上比较特殊,但其定义与其他函数是一样的。
C++程序文件常见后缀:cc、.cxx、.cpp、.cp及.c。
初始输入输出
C++没有定义一个输入输出(IO)的语句,取而代之,包含了一个全面的标准库(standard library)来提供IO机制(以及很多其他设施)。
iostream库包含了两个基础类型istream和ostream,分别为输出流和输入流。一个流就是一个字符序列,术语“流”(stream)需要表达的是,随着时间的推移,字符是顺序生成或消耗的。
标准输入输出对象
标准库定义了4个IO对象。处理输入,使用一个名为cin的istream类型的对象,也被称为标准输入(standard input);处理输出,我们使用一个名为cout的ostream类型的对象,此对象也被称为标准输出(standard error)。还有另外两个ostream对象,分别是cerr和clog,通常使用cerr来输出警告和错误消息,因此也被称为标准错误(standard error)。而clog用来输出程序运行时的一般性信息。
关于一个使用IO的程序
#include <iostream>
int main(){
std::cout << "Enter two numbers:"<< std::ends;
int v1 = 0,v2 = 0;
std::cin >> v1 >> v2;
std::cout << "The sum of" << v1 <<"and" << v2
<< "is" <<v1 + v2 << std::end;
return 0;
}
首先打印第一句在屏幕上。
Enter two numbers
之后等待用户输入。
例如输入:
3 7
然后键入回车,则程序产生出以下输出:
The sum of 3 and 7 is 10
关于程序第一行
#include <iostream>
告诉程序我们要使用iostream库。尖括号中的名字指出一个头文件(header),每个使用标准库设施的程序都必须包含相关的头文件。通常情况下,#include指令必须出现在所有函数之外,所以一般将一个程序的所有#include指令都放在源文件的开始位置。
向流写入数据
我们在上面的程序中写入一段输入语句,使用的是输入运算符(<<)在标准输出上打印消息,
输出运算符接受两个运算对象:左侧的运算对象必须是一个ostream对象,右侧的运算对象是要打印的值。此运算符将给定的值写到给定的ostream对象中。输出运算符的计算结果就是其左侧的运算对象。即,计算结果就是我们写入给定值的那个ostream对象。
因为此运算符返回其左侧的运算对象,因此第一个运算符的结果成为了第二个运算符的左侧运算对象。我们的表达式等价于
(std::cout<<"Enter two numbers:")<<std::endl;
也可以用两条生成相同的输出:
std::cout<<"Enter two numbers";
std::cout<<std::endl;
第一个输出运算符给用户打印一条消息。这个消息是一个字符串字面值常量(string literal),是用一对双引号包围的字符序列。在双引号之间的文本被打印到标准输出。
第二个运算符打印endl,这是一个被称为操纵符(manipulator)的特殊值,写入endl的效果是结束当前行,并将与设备关联的缓冲区(buffer)中的内容刷到设备中。缓冲刷新操作可以保证到目前为止程序所产生的所有输出都真正写入输出流中,而不是仅停留在内存中等待写入流。
使用标准库的名字
前缀std::指出名字cout和endl是定义在名为str的命名空间(namespace)中的。命名空间可以帮助我们避免不经意的名字定义冲突,以及使用库中相同名字导致的冲突。
例如:需要写出std::cout,通过使用作用域运算符(::)来指出我们想使用定义在命名空间std中的名字cout。
从流读取数据
输入运算符(>>)与输出运算符类似,它接受一个istream作为其左侧运算对象,接受一个对象作为其右侧运算对象。它从给定的istream读入数据,并存入给定对象中。与输出运算符类似,输入运算符返回其左侧运算对象作为其计算结果。本例中的输入操作从std::cin读入两个值,并将第一个值存入v1,将第二个值存入v2。
等价于:
std::cin>>v1;
std::cin>>v2;
完成程序
运算对象并不都是相同类型的值。某些运算对象是字符串字面值常量,例如“The sum of”。
标准库定义了不同版本的输入输出运算符,来处理这些不同类型的运算对象。
总结
关于C++:
一般c++的源文件使用文件后缀常有:cc、.cxx、.cpp、.cp及.c。
头文件使用标准库需要在语句中加入std:: 。
输入为cin;输出为cout。
std::是用来将与设备关联的缓冲区(buffer)中的内容刷到设备中,防止程序崩溃时判断错崩溃位置。