c++ - 如何在 C++ 中将多个不同类型的变量打印到控制台
问题描述
我是 C++ 的初学者,经过几分钟的编码,我厌倦了手动输入“std:cout << “print something”<< std:endl;” 所以我决定创建一个名为 printL 的函数来简化打印到控制台,经过几个小时和一些优化后,我最终得到了一个模板,我尝试创建一个可变参数模板,但我无法弄清楚我的代码有什么问题
template < typename T > void printL(T t){
std::cout << t << std::endl;
}
template < typename T, typename ...F > void printL(T t, F ...f) {
std::cout << t << printL(f...) << std::flush;
}
int main() {
printL("the quick brown fox jumps over the lazy dog ", "dog");
return 0;
它应该输出这个:
the quick brown fox jumps over the lazy dog dog
代码应该接受一些未知的参数,并且类型也是未知的。它应该将它们打印在一行中,并以新行结束打印功能。
解决方案
您的函数被定义为 return void
,因此您的代码将不起作用。相反,只需打印第一个参数,然后进行递归调用以打印其余参数。
std::cout << t;
printL(f...);
您的终止实现使用std::endl
, 并且已经刷新。
推荐阅读
- z3 - z3位向量运算简化答案
- tsql - T-SQL - Pivot/Crosstab - 可变数量的值
- javascript - 如果使用特殊字符存储的值,mongoose find with $regex 不会返回预期结果
- python-3.x - Tensorflow checkpoints are not correctly saved when using gcloud compute unit instead of local
- javascript - 使用 mapbox-gl-js 为特征集合中的每个特征添加自定义图标
- javascript - 如何生成文本框,然后将它们的值 ng 建模为 AngularJS 中的表达式?
- javascript - 背景颜色不会改变javascript
- android-studio - LintError 未知问题 ID“StyleCycle”
- bootstrap-4 - 水平引导 4 列
- java - 在Java中制作jar文件时如何获取文件路径