C++ 学习

C++的 >> 输入流

>>是自动读取字符串流内容的符号。 
每读完一个符合条件的字符串、整数类型(以空格隔开),之后会自动后移。cin 是指从电脑键盘输入的内容将会以字符串流形式自动导入 cin(即键盘输入内容后,cin 就成为一个“字符串流”了,存储的内容为从键盘输入的内容),而>>则负责读取字符串流的内容,匹配到正确的类型,返回1,否则返回0;用到while将会不断的读取字符串流。 
下面直接上代码说明:

 #include<iostream>
     using namespace std;
     int main()
     {
      int s;
      //在键盘输入内容前,cin还没有用到,预定义的对象 cin 是 iostream 类的一个实例。cin 对象附属到标准输入设备,通常是          键盘。cin 是与流提取运算符 >> 结合使用的,
      //输完内容之后才把内容以字符串流的形式传给cin流对象
      //cin就变成字符串流,使用提取运算符 ">>" 从设备键盘取得数据,
      //读取类型符合时,就把读取的数据赋值给s;

// endl 最后一个字符是字母“l”,而非阿拉伯数字“1”,它是“end of line”的缩写。
      cin>>s;    
      cout<<endl;
      cout<<s<<endl;
      return 0;
     }
只输入一个数时,cin自动读取内容,读取到空格的地方停止,然后判断读取的内容是否符合类型,这里的s为int类型,符合即把读取的内容赋值给s 


"::"在C++中表示作用域,和所属关系。"::"是运算符中等级最高的,它分为三种,分别如下:

一、作用域符号:

作用域符号”::“的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分。

例如:A,B表示两个类,在A,B中都有成员member。

那么:

1、A::member就表示类A中的成员member。

2、B::member就表示类B中的成员member。

二、全局作用域符号:

全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分,例如:

三、作用域分解运算符:

::是C++里的作用域分解运算符,“比如声明了一个类A,类A里声明了一个成员函数voidf(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成voidA::f(),表示这个f()函数是类A的成员函数。例如:


cout 和 cin 都是 C++ 的内置对象,而不是关键字。C++ 库定义了大量的类(Class),程序员可以使用它们来创建对象,cout 和 cin 就分别是 ostream 和 istream 类的对象,只不过它们是由标准库的开发者提前创建好的,可以直接拿来使用。


C++中"\n"与endl的区别是什么?

"\n"表示内容为一个回车符的字符串。std::endl是流操作子,输出的作用和输出"\n"类似,但可能略有区别。
std::endl输出一个换行符,并立即刷新缓冲区。
例如,
std::cout << std::endl;
相当于
std::cout << '\n' << std::flush;,或者
std::cout << '\n'; std::fflush(stdout);。
由于流操作符operator<<的重载,对于'\n'和"\n",输出效果相同。

 


布尔值

C++中的布尔变量存储的就是0和非0,0即为false,非0即为true,你要输出true或者false只能自己判断布尔变量的真假,真则输出true,假则输出false,需要自己写语句,最简单的就是用boolalpha,例如
bool bTrue=1;
bool bFalse=0;
cout << boolalpha <<bTrue<< endl;

输出true cout << boolalpha <<bFalse<< endl; 输出false boolalpha记得要using namespace std;