网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月22日
漏签
0
天
c++吧
关注:
611,213
贴子:
2,110,080
看贴
图片
吧主推荐
游戏
1
2
3
下一页
尾页
85
回复贴,共
3
页
,跳到
页
确定
<<返回c++吧
>0< 加载中...
明明cout更方便,为什么更喜欢printf
只看楼主
收藏
回复
Просточудо
&&
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
我看到很多大佬都用printf,但我在阅读学习资料的时候,上面曾提到过cout更智能,更方便。
xmen002
&&
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
可能更喜欢那种老式的函数吧
义乌市迪丰网络科技
c++
一键修复电脑丢失的DLL文件,dll修复.site 工具快速解决电脑奔溃,软件打不开,游戏环境缺失等DLL丢失..
2025-04-22 08:00
广告
立即查看
贴吧用户_QXX9bV9
|
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
+3
油炸不良人
<
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
不考虑输出格式,确实cout省心,无脑<<就行
不需要考虑数据类型
格式输出,还是printf方便,并且据说printf执行速度比cout快
见仁见智,哪种方便用哪个
char c = 65;
double d = 0.123456;
printf("%c %d %o %x %p\n"
"%lf %.1lf %.2lf %.3lf %.4lf",
c, c, c, c, &c,
d, d, d, d, d);
用cout是不是要麻烦许多
aaaaaaa421
*
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
cout 实际上很难用,因为 << 的写法会强制你将 printf 中连续的格式字符串切开来,十分烦人,如果你后面需要调整输出格式的话会更明显。当然,如你所说,cout 在处理 C++ 对象时更方便、可拓展性更好,因此后面 C++23 吸取了两者的优点(抄袭了 Python),推出了 std::println,灵活且好写。举个例子,以下三种不同的写法,哪种更好是显而易见的。
1. `cout << "Expr '" << a << "' + '" << b << "' = '" + (a + b) + "' is true." << endl;`
2. `printf("Expr '%s' + '%s' = '%s' is true.\n", a.c_str(), b.c_str(), (a + b).c_str());`
3. `println("Expr '{}' + '{}' = '{}' is true.", a, b, a + b);`
打得过莱特密
^
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
大量输出的时候printf性能比cout好很多
迪奥5
|
7
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
printf更快,在写算法题的时候
kyoshoadg
*
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
因为printf, cout都是历史错误。
printf是大量格式串安全漏洞的来源,格式串这玩意无法安全。而且格式串与C++宏冲突
cout异常不安全,线程不安全,滥用操作符重载。完全就是失败设计。虽然没有格式串是一大进步,但别的问题太多。
性能上两者都是垃圾
请用fast_io
kyoshoadg
*
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
printf格式串安全漏洞。 cout异常线程不安全
kyoshoadg
*
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
异常不安全是最大的问题。
kyoshoadg
*
14
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
请换fast_io谢谢
无格式串,无异常安全问题,无线安全问题。性能快至少10倍
至高神Nova
,
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
因为cout的格式化是一坨。标准委员会都看不下去准备重写输出了
贴吧用户_Q63XXtC
,
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
举例:输出坐标
printf("pos:x=%d,y=%d /n",px,py);
cout<<"pos:x="<<px<<",y="<<py<<endl;
printf输出后的格式清晰明了
路人庚巳
||
5
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
主要两个原因,1、cout处理格式化输出的用法(流操纵器)非常恶心,举个栗子,printf("%+04d %8s", foo, bar)用cout来写,就是std::cout << std::showpos << std::setw(4) << std::setfill('0') << foo << " " << std::setw(8) << std::setfill(' ') << bar——printf写完了先进智能的cin还在打左移运算符呢。
然后2、它的性能一般还比stdio慢,因为它在和stdio的缓冲区保持同步。虽然也可以通过std::ios_base::sync_with_stdio(false)关掉提升速度,至于这么做可能带来的问题这里不展开。
又及,为了解决c++标准库格式化输出不好用的问题,最近的标准里相继引入了format和println,但是挺重的。(作为对比,同样的你好世界,msvcO2优化下,printf版140k,cout202k,而println则达到了363k(当然这和很多其他因素有关,权作直观感受)
说到最后其实就是标准库里printf又小又快,大家,特别是图省事的,更喜欢。
并没有劝楼主用哪个的意思,自己写得舒服才是最重要的。至于公司项目,项目规范怎么写就怎么做吧。
上班上班
<
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
printf性能好一些,而且他叫格式化输出,可以方便设置输出格式,另外新标准推荐使用print和println
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示