【重学《C++Primer第四版》】第一章、快速入门

【重学《C++Primer第四版》】第一章、快速入门

Details of knowledge

1.main()函数:操作系统通过main()函数返回的值来确定程序是否成功执行完毕,返回0值表示程序成功执行完毕,返回-1通常作为程序运行失败的指示器。

2.标准输入有cin,标准输出出了cout还有cerr和clog,具体介绍见Detailed description。

3.namespace为命名空间,有std,cv等。

4.推荐注释风格:在注释的每一行以星号开始,指明整个范围是多行注释的一部分。

 

Questionable Examples

习题1.2:main函数中return -1;时各编译器的处理:

VC6.0::没有指示任何错误。

DEVC++:控制台下输出Process exited with return value 4294967295

VS2012:程序已退出,返回值为 -1 (0xffffffff)


习题1.7:编辑有不正确嵌套的注释的程序。

</pre><pre name="code" class="cpp">/*
*注释对不可嵌套测试 
*/
#include<iostream>
using namespace std;
int main()
{
	/*eshrtj/*rgrjsrrjhrtjr*/erhrekk*/ 
	return 0;
} 

直接报错,不能运行,main函数中errhrekk*/这一段被当做source code


习题1.8: cout<<"/*"; 是合法的,/*被当做字符串处理。

cout<<"*/"; 是合法的,*/被当做字符串处理。

cout<</*  "*/"  */; 不合法, /*  "*/直接就是注释对,"  */作为source code


  Concrete Explanation

1.标准输出cerr:

cout对应于标准输出流默认情况下是显示器。这是一个被缓冲的输出,可以被重定向。

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

// test.cpp
#include <iostream>
using namespace std;
int main()
{
cout << "hello world---cout" << endl ;
cerr << "hello world---cerr" << endl ;
return 0;
}

运行截图:


好像cout和cerr没什么区别,都只是输出了一下而已,现在我们就需要说一下使用cerr的原因了。

原因:在紧急情况下还可以用使用输出功能,比如内存使用殆尽等。


2.标准输出clog

clog - C++ Reference:

Object of class ostream that represents the standard logging stream oriented to narrow characters (of type char). It corresponds, along with cerr, to the C stream stderr

clog流对象也是标准错误流,它和cerr只有一个微小的区别:cerr是不经过缓冲区,直接向显示器上输出有关信息,而clog中的信息存放在缓冲区中,缓冲区满后或遇到endl时向显时器输出。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值