如何在 C++ 中打印多个不同类型的变量以进行控制台

How to print multiple variables of different type to console in C++

我是 C++ 的初学者,编码几分钟后我就厌倦了手动输入 "std:cout << "打印一些东西" << 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,并且已经刷新。

有了 C++17 fold expressions,就更简单了

template <typename... T> void printL(T... t) {
    (std::cout << ... << t) << std::endl;
}