c++ 格式化字符串

格式化字符串

c++格式化字符串做的挺烂, 还是用c的snprintf吧.

snprintf可以认为是sprintf的升级版, 多了一个控制字符串长度的参数.

语法

    //snprintf语法:
    //  int snprintf(char *str, int n, char *format[, argument, ...])
    //  参数一: char类型字符串, 格式化后的字符串会赋值给这个变量
    //  参数二: 字符串最大长度, 超过会被截断
    //  参数三: 待格式化的字符串
    //  剩余参数: 待格式化的变量/常量
    //  返回值: 格式化成功返回char *str的长度, 失败返回-1.

代码

#include <iostream>
#include <string>

int main()
{
    using namespace std;

    string s0 = "abcd"; //string 类型字符串
    int i = 5         ; //整数
    float f = 0.123456; //浮点数

    int size = 100;
    char buffer[size];  //char 类型字符串

    snprintf(buffer, size, "|%-6s|%3d|%5.2f%%|", s0.c_str(), i, f);
    cout << buffer << endl; //输出: |abcd  |  5| 0.12%|
    //注意一: 待格式化的变量如果是string类型的话, 不能直接用, 需要用string.c_str()转回为c格式字符串.
    //注意二: format中如果要输出%, 需要转义, 但不是使用\%, 而是使用%%.

}

原文链接: https://www.cnblogs.com/gaiqingfeng/p/16337644.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    c++ 格式化字符串

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/189877

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午3:46
下一篇 2023年2月12日 下午3:46

相关推荐