码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • std::cout、printf 和 RCLCPP_INFO的对比


    1、std::cout

    C++自带,不用标明数据的类型,可以直接输出,不过只能输出几种基本格式的数据。

    2、printf

    C++自带。
    typedef 重新定义数据格式后,std::cout是不能正常输出显示的,必须用printf()才能输出uint8_t类型的数据值,需要标明数据的类型。

    printf()函数的调用格式为:

    printf("<格式化字符串>", <参量表>);
    
    • 1
    // 1、整形
    %d  有符号十进制整形
    %ld 十进制长整形
    %3d 位数为3,不足则在左边补空格
    
    %u  无符号十进制整形
    %lu 无符号十进制长整形
    
    %x  无符号十六进制整形,如0x12
    %lx 位数为4,不足则在左边补0,常用,如0x0012
    
    // 2、实型
    %f  float型
    %lf double型
        
    m.n m指域宽,即所占的总的位数,包含小数点;n指精度,即小数的位数
    %f  不指定宽度,整数部分全部输出,并输出6位小数
    
    // 3、字符
    %c  字符
    
    // 4、字符串
    %s  字符串
    
    // 5、指针
    %p  指针
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    ​ 比如:

    int val = 86;
    printf("val= %d, 字符= %c",val,val);
    //val= 86, 字符= V
    
    • 1
    • 2
    • 3

    3、RCLCPP_INFO

    ROS2自带的log输出,分等级,带颜色,输出格式与printf相同,需要标明数据的类型。

    RCLCPP_INFO(get_logger(),"val:%d",val);
    
    • 1

    4、异同点

    4.1 各自优点
    • std::cout简单,不要标明数据类型,直接输出;
    • printf输出数据类型多,可以输出typedef重定义后的类型;
    • RCLCPP_INFO分等级,比如RCLCPP_ERROR会在终端上显示红色,便于对不同的错误等级log分类,且会显示绝对时间以及ros node的名称;
    4.2 选择
    • std::cout和printf可以用linux的重定向>将终端显示输出到指定文件中,而RCLCPP_INFO无法重定向;
    • std::cout使用方便,不用指明数据的类型;
    • print和RCLCPP_INFO需要指明数据类型,一旦数据类型指明错误,则无法输出log显示。
  • 相关阅读:
    渗透测试漏洞原理之---【业务安全】
    中国芯片金字塔成形,商业化拐点将至
    资深程序员-5年大厂经验代码究竟写的如何-H5-WEBgl-typeScript的笔记代码之一
    Illegal key size or default parameters
    【python】内置库函数大集合 ❢ 这不得点赞收藏一波~
    简单好用的 SemVer: 如何命名你的应用版本
    计算机视觉与深度学习 | 基于视觉惯性紧耦合的SLAM后端优化算法
    Nginx主配置文件和监控模块VTS
    getBoundingClientRect属性研究
    mariadb
  • 原文地址:https://blog.csdn.net/Kevin_Xie86/article/details/126806164
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号