c++Primer----初识输入输出

知识点:

1. iostream库包含两个基础类型istream和ostream,分别表示输入流和输出流。一个流就是一个字符序列,是从IO设备读出或写入IO设备的。术语“流”(stream)想要表达的是,随着时间的推移,字符是顺序生成或消耗的。

2. 书上原文:标准库定义了4个IO对象,处理输入时使用命名为cin的istream类型对象,这个对象也成为标准输入。处理输出时使用命名为cout的ostream类型对象,这个对象也称为标准输出。标准库还定义了另外两个ostream对象,分别命名为cerr和clog。cerr对象又叫标准错误,通常用来输出警告和错误信息给程序的使用者,而clog对象用于产生程序执行的一般信息。一般情况下,系统将这些对象与执行窗口联系起来,这样,当我们从cin读入时,数据从执行程序的窗口读入,当写到cout、cerr、clog时,输出写至同一窗口。

cout 经过缓冲后输出,默认情况下是显示器。这是一个被缓冲的输出,是标准输出,并且可以重新定向。

cerr 不经过缓冲而直接输出,一般用于迅速输出出错信息,是标准错误,默认情况下被关联到标准输出流,但它不被缓冲,也就说错误消息可以直接发送到显示器,而无需等到缓冲区或者新的换行符时,才被显示。一般情况下不被重定向。

ps:什么是重定向?可以理解为把原来的cin从键盘输入改为从文件输入。把原来的cout向屏幕输出改为输出到文件。

       缓冲区的目的?就是减少刷屏的次数。即缓存足够多的数据一齐输出,减少刷屏次数。

3. endl:当向cout流插入一个endl,立即输出缓冲区中所有数据,然后插入一个换行符 。

#include <iostream>
#include "stdlib.h"
int main()
{
	
	std::cout << "Enter two numbers:" << std::endl;
	int num[2],i = 0;
	
	do
	{
		std::cin >> num[i++];
	}
	while(std::cin.get()!='\n');    // 回车键为结束符
	if (i == 2)
	{
		std::cout << "The sum of " << num[0] << " and " << num[1]
				<< " is " << num[0] + num[1] << std::endl;
	}
	else
	{
		std::cerr << "The inputs is wrong." << std::endl;
		std::clog << "This is a log." << std::endl;
	}
	
	system("pause");
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/hc372893308/article/details/82262243
今日推荐