美文网首页
使用 sprintf 时设置变量长度的注意

使用 sprintf 时设置变量长度的注意

作者: 星星之火666 | 来源:发表于2019-05-03 22:37 被阅读0次
    代码:
    #define _CRT_SECURE_NO_WARNINGS
    #include<iostream>
    using namespace std;
    int main()
    {
        char h[17];
        for (int i = 0; i < 17; i++)
            cout << (int)h[i] << ", ";
        cout << endl << endl;
        unsigned long long a = 0x1234567890abcd;
        sprintf(h, "%016I64x", a);
        for (int i = 0; i < 17; i++)
            cout << (int)h[i] << ", ";
    }
    
    结果:
    -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
    
    48, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 97, 98, 99, 100, 0
    
    证明:

    sprintf 中 "%016I64x" 将最后的 '\0' ,复制给了 h,所以 h 需要 17 字节

    相关文章

      网友评论

          本文标题:使用 sprintf 时设置变量长度的注意

          本文链接:https://www.haomeiwen.com/subject/ukctoqtx.html