C++没有定义任何的输入和输出语句,而是使用了 标准库来提供IO机制---iostream;
标准库iostream定义了4种不同的IO对象:
- cin: 标准输入对象:instream类型的对象;
- cout: 标准输出对象:outstream类型的对象;
- cerr: 标准错误输出对象:outstream类型的对象,用于输出错误和警告信息
- clog: 日志信息输出对象:outstream类型的对象,用于输出程序运行的一般信息
知识点:
1. 头文件
头文件中包含一些函数的接口,需要使用include可以告诉编译器想要使用那些函数库,导入的方式如下所示。
<>号中包含的是头文件的名字。
#include <iostream>
2. 向流中写入数据
在C++中,一个表达式的产生往往由多个对象和运算符组成。这里的需要使用<<和>>运算符。
<<运算符需要接受两个对象: 左侧是outstream对象,右侧是输出的字符串
这样就可以把要写的字符放入流对象里面了。既然如此,我们也是可以是可以嵌套的:
2.1 解析 endl
endl的意思就是end line, 这是一个被称为操纵符的特殊值,执行endl的效果是:
1. 结束当前行,并且换行
2.将与设备关联的缓冲区中的内容刷到设备中 。缓冲刷新操作是可以保证到目前为止所有的输出都真正的写到了输出流中,而不是停留缓冲区里面;
在日常操作中,我们应该在每次打印输出的时候加上endl,否则可能会因为缓冲区已经满了出现程序崩溃
2.2 解析std
细心的同学会发现每次使用cin和cout的时候都需要写成 std::cin或者std::cout, 这是因为cin,cout是定义在std的命名空间里面的。
通过名命空间使用标准怒的时候需要显示的写出来自哪个名命空间,如下:
1 #include <iostream> 2 3 int main() 4 { 5 std::cout << "Hello, World!" << std::endl; 6 }
当然也可以,使用using 一次性的声明:
1 #include <iostream> 2 using std::cout; 3 using std::endl; 4 5 int main() 6 { 7 cout << "Hello, World!" << endl; 8 return 0; 9 } 10
3. 使用输入流
在标准库中输出流的对象有cout,cerr,clog,而输入流的对象只有cin
cin是可以从设备读入到内存的输入流对象。
1 #include <iostream> 2 using std::cout; 3 using std::endl; 4 using std::cin; 5 6 int main() 7 { 8 cout << "Hello, World!" << endl; 9 cout << "读取数量不定的数字,求和"<<endl; 10 11 int sum=0,value=0; 12 while(cin>>value) 13 { 14 sum+=value; 15 cout << "读取数字 " << value << endl; 16 } 17 18 cout << "sum is "<< sum << endl; 19 return 0; 20 }