您现在的位置是:亿华云 > IT科技类资讯
Cout和Printf,选择哪个更好?
亿华云2025-10-09 09:06:23【IT科技类资讯】0人已围观
简介本文转载自微信公众号「程序喵大人」,作者程序喵大人。转载本文请联系程序喵大人公众号。网上经常看到有人说,不建议使用cout,而应该更多使用printf,下面说说我的看法!个人看法是两个都不建议用。下面
本文转载自微信公众号「程序喵大人」,更好作者程序喵大人。更好转载本文请联系程序喵大人公众号。更好
网上经常看到有人说,更好不建议使用cout,更好而应该更多使用printf,更好下面说说我的更好看法!
个人看法是两个都不建议用。
下面说下我的更好理由:
cout方式效率低:每次cout << endl,都会刷新一遍输出缓冲区。更好
cout方式线程不安全:
std::cout << "Hello " << "World ";上面代码其实等同于:
std::operator<<(std::operator<<(std::cout,更好 "Hello "), "World ");相当于调用了两次operator<<,不保证调用两次operator<<是更好线程安全的免费信息发布网。
cout方式输出复杂的更好格式很麻烦:比如我想输出a + b = c:
std::cout << a << " + " << b << " = " << c << std::endl;是不是很麻烦,那可以使用printf?更好
printf("%d + %d = %d \n", a, b, c);但printf需要开发者填入变量格式,如果填写有误,更好有可能打印错误,更好也有可能crash:
某个long long 型,使用%d打印会怎么样? 某个int32_t型,使用%lld打印会怎么样? 某个const char* 型,使用%d打印会怎么样? 某个float型,使用%d打印会怎么样?所以使用printf会给开发者带来负担,一定要在打印前确认变量的香港云服务器类型,并且一定要保证配置的输出格式正确,我想大多数人可能都会在print某个变量前搜索过打印某个类型需要使用哪种格式吧?
那用啥呢?
cout配合format。
std::cout << std::format("{ } + { } = { } \n", a, b, c);使用format可以把上面的问题全都解决,C++20标准已经全面支持使用std::format,如果不打算上C++20。可以考虑使用spdlog。
而且平时做项目时基本都使用第三方log库,没有几个调用这种裸接口的。
欧了,打完收工!
网站模板很赞哦!(4988)