C++语言零基础入门教程:2.6 标准输出printf和cout的对比分析

6148 人浏览 | 时间: 2015-09-30 15:00:00 | 作者: codexia 会员文章,禁止转载

   在上一节《C++语言零基础入门教程:2.5 标准输入输出流的剖析》中详细介绍了标准输入输出的背景知识。在第二章中,这几节都是简洁的介绍,主要是将一个基本的程序结构讲给大家看看。详细的展开则会在后面的章节里。所以,你可能感觉到,这几篇文章似乎内容比较少哦,因为我们要针对零基础的同学哦。没关系的,这里就只需要大概了解,在介绍后面的基础知识时,经常会用到本章的几个知识,所以这样你能够比较清楚的了解到这些使用的东西,不至于强行盲目的记忆。对于什么都没有基础的同学来说,无法展开太多,否则,就无法接受。如果你有些基础,请谅解。
    包含预编译指令#include、头文件iostream、标准命名空间std和标准输入输出流,都做了简要的分析。下面我们需要再将经常使用的标准输入输出的使用,讲解一下。然后,再讲述一下C++控制台程序的生命周期,这样就完整的描述了第一个程序的全部。在后面每一章,再铺开讲述。
    标准输入输出的使用,我们在此也是做简要的介绍,深入的解释,在相关章节细致讲解。
    标准输入输出,就是将结果输出显示在屏幕中,从键盘获得输入的数据。我们暂不考虑其他错误输出等。目前来讲,不需要,在相关章节里,会讲到的。
    在C语言中,输出使用格式化输出函数printf,语法样例为:

printf("输出的内容,%d",14);
     printf是函数名,声明在stdio.h中,当然,iostream头文件的一层层的包含中(即一个头文件中包含一个头文件),最终包含了cstdio头文件。而在cstdio头文件中,有这么一句代码:
using _CSTD printf; 
     这个代码就是导入printf标识符的意思,而这个标识符的声明是在标准命名空间中的,导入之后,就可以直接使用了。这就是为什么虽然只包含了iostream头文件就可以使用C语言的这些函数了。这是C++语言出于兼容C语言的做法。因为很多学习C++语言的人是从C语言转入的,或者有时候有使用C语言这些函数的必要。从这里你可以看到了C++语言是C语言的超集的冰山一角,也就是C++语言不仅涵盖了C语言的语法,思想和库函数的使用等,还发展出了很多C语言没有的东西,比如面向对象,而C语言的部分就成了C++的一部分了。这也就是超集的说法来源。
    所以,适当的了解下C语言的知识,对于C++本身并不是超越范围的。但是,我们只是去了解,不必太较真与C语言的这些,毕竟,使用C++的特性,可以更好的理解C++,可以更好的提高开发效率。我们马上从对比中可以看到C++带来的好处。
    printf的第一个参数就是一个字符串,在字符串内部,一般输入什么,最后就显示什么。但是很多时候,我们需要根据不同的情况,保持一些内容不变,而只需要变个别内容,比如递增序号。
当前处理的卡号:34
当前处理的卡号:35
当前处理的卡号:36
printf("第一名:%d 第二名:%d 第三名:%d",100,98,88);
     这里就将三个数字格式化到了三个格式化输出组合的位置,最终替换了%d这个格式化组合,而%d表示的就是十进制整数。所以最后输出的就是:
第一名:100 第二名:98 第三名:88
     当然这个是看似没有必要,而如果要不断的改变后面的数字,就可以达到改变输出的内容了。你不需要每次都修改双引号内的东西了。我们在程序中,肯定不会去输出这个数字这么简单,通常是输出一个变量的值。变量就是可以改变变量的值的东西,那么我们程序就可以不断的改变变量,然后格式化到字符串里,这样输出的内容就不断的改变了。
    这个可以很好的解决输出格式化的要求。但是问题来了,程序员的压力就很大了,要记忆格式化组合,要保证组合数和后面参数对应上,还要对应正确等等问题。
    而C++语言中,就极大的简化了这个功能。你不必去关注格式化的方面的事情了,C++帮你自动处理好正确的格式,很智能。使用的就是输出工具cout。那么上面的输出你可以写成:
cout<<"第一名:"<<100<<"第二名:"<<98<<"第三名:"<<88;
     你只需要依次输出这些内容,然后在中间连接上要输出的内容即可。不必去管什么格式化,你给定的类型,cout就会按照这个类型来输出。多个字符串,使用<<连接就可以了。如果你要换行,可以在字符串中输出换行符\n即可。或者在<<后面输出endl标识符就可以了。比如:
cout<<"第一名:"<<100<<endl;
cout<<"100\n":
     以上两种都可以达到换行的效果,至于适用场合,\n适合后面没有接东西的换行,而endl则是最后面接了其他东西,导致不能直接在字符串中换行而使用。这样不用在最后面单独加入一个"\n"这样的,比如:
cout"第一名:"<<100<<"\n";
     这样虽然效果一样,不过,写起来就比较麻烦了。两个可以灵活使用。
    而对于cout本质的东西,则涉及到更多的知识,暂时你就将它当做是标准输出的工具即可。这里就是对比C语言的printf和C++语言的cout的使用,让你感受到C++带来的便捷。不过在此,也只是稍作介绍,下一节讲述标准输入的内容,也是简单介绍一下。先简单了解,我们再铺开讲述。
当前文章为会员文章,请前往[用户中心]开通会员后继续阅读。