关于本地cout与printf输出不同的问题

博主在调试程序时遇到一个问题,发现使用cout打印的变量结果正确,而printf则显示异常。经过排查,发现是int型变量用%lld格式化输出导致的错误。进一步实验表明,先用cout输出后再用printf,答案也会正确。博主推测可能是cout的输出导致了变量类型的变化,使得printf后续能正确输出。结论提醒程序员在编程时要注重细节。
摘要由CSDN通过智能技术生成

2020.12.31


今天,我做着题,一道题我死活调不出来。

答案总是一个特别大的数。

我:???

然后呢,我又检查了一遍,没有错。

这时,调程序的我用cout打出了中间变量,结果:答案正确了! /jk

不死心的我又把printf换成了cout,哎,就在这一刹那。答案竟然也对了。 /jk

后来我找到问题了,原来是int定义的数我用%lld输出了,不出问题就怪了。

但是令人疑惑的事情是:既然printf有错,那为什么先用cout再用printf,printf输出的就对了呢?

于是,根据实验目的,我列出了一个表格:

实验目的
探究cout 与 printf输出的差别
方式 答案是否正确 是否开启longlong
第一次实验 cout
第二次实验 printf
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值