c++输出函数printf的问题

下面这段话是《c语言深度剖析》中的话,说不到万不得已,不要使用printf。为什么?从现在开始,除非在特殊情况下,不允许用printf这个函数。为什么呢?很多学生写完代码... 下面这段话是《c语言深度剖析》中的话,说不到万不得已,不要使用printf。为什么?

从现在开始,除非在特殊情况下,不允许用 printf 这个函数。为什么呢?很多学生写完
代码,直接用 printf 打印出来,发现结果不对。然后就举手问我:老师,我的结果为什么不
对啊?连调试的意识都没有!大多数学生根本就不会调试,不会看变量的值,内存的值。
只知道 printf 出来结果不对,却不知道为什么不对,怎么解决。这种情况还算好的。往往很
多时候 printf 出来的结果是对的, 然后呢, 学生也理所当然的认为程序没有问题。 是这样吗?
往往不是,往后看,你能看到例子的。永远给我记住一点:结果对,并不代表程序真正没
有问题。所以,以后尽量不要用 printf 函数,要去看变量的值,内存的值。当然,在我们目
前的编译器里,变量的值,内存的值对了就代表你程序没问题吗?也不是,往后,你也会
看到例子的。
这个时候呢,学生往往会莫名其妙。这个老师有问题吧。大学里我们老师都教我们怎么
用 printf,告诉我们要经常用 printf。这也恰恰是大学教育失败的地方之一。很多大学老师根
本就没真正用C语言写过几行代码, 更别说教学生调试代码了。 不调试代码, 不按F10或F11,
水平永远也无法提上来,所以,要想学好一门编程语言,最好的办法就是多调试。你去一
个软件公司转转,去看人家的键盘,如果发现键盘上的 F10 或 F11 铮亮铮亮,毫无疑问,
此机的主人曾经或现在是开发人员 (这里仅指写代码的, 不上升到架构设计类的开发人员)
还有一些疑问,像这段语句:printf("%d,%c\n",i,j),%d代表整型,还是d代表整型?%起什么作用?还有,c是字符型,输出的要是double型,那应该是哪个?
展开
 我来答
longinus_dean
2012-02-25 · TA获得超过2282个赞
知道小有建树答主
回答量:1097
采纳率:50%
帮助的人:1514万
展开全部
首先printf是c语言的函数,不是c++的,因为c++兼容c语言所以能用,不过要注意我说的,这个是有区别的

我觉得这篇文章可能是在批评的printf的没有任何检查错误的能力吧,就是说没有类型检查,例如

char c = 'a';
printf("%d",c);

这个你说能输出吗?能输出,不过你又会问,变量是char类型的,printf的输出符是%d,%d不是输出int类型的吗,这也能输出?也能输出!这就是为了什么说printf没有类型检查的问题

所以就算能输出,并不代表你的程序就能输出对,就没错。

看这段文字可能主要问题并不是在说printf的错误,主要是在谈论调试的问题,中国一般大学是不会教有关调试的东西,这也是一个很可惜,很可悲的地方,其实只要知其然,也知其所以然,无论用什么函数输出,都并没问题的。
985967518
2015-11-10 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109858
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部

printf函数的一般格式是:  printf(格式控制,输出表列)

printf函数调用的一般形式

printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用 printf 函数之前必须包含stdio.h文件。
其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:

“%d”表示按十进制整型输出;

“%ld”表示按十进制长整型输出;

“%c”表示按字符型输出等。

例如:

//参考代码如下:
//参考代码如下:
#include<iostream>
#include <stdio.h>
using namespace std;
int main(){
    int a=88,b=89;
    printf("%d %d\n",a,b);
    printf("%d,%d\n",a,b);
    printf("%c,%c\n",a,b);
    printf("a=%d,b=%d",a,b);
    return 0;
}
/*
运行结果:
88 89
88,89
X,Y
a=88,b=89 
*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
血笛1234
2012-02-25 · 超过12用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:25.8万
展开全部
%是代表输出的格式,d是代表整形
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科
2021-04-01 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.2亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2012-02-25 · TA获得超过3000个赞
知道大有可为答主
回答量:1338
采纳率:75%
帮助的人:1283万
展开全部
他说这话的意思是学学程序调试技巧吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式