【问题标题】:Storing an integer into a char* in C++在 C++ 中将整数存储到 char* 中
【发布时间】:2010-12-28 13:24:24
【问题描述】:

我正在编写一些返回整数的代码,然后需要使用 ncurses 库中的 printw 将其输出。但是,由于 printw 只需要 char*,我不知道如何输出它。

本质上,有没有办法将整数存储到 char 数组中,或者使用 printw 输出整数?

【问题讨论】:

    标签: c++ arrays integer char ncurses


    【解决方案1】:

    使用 itoa() 或 sprintf() 将整数转换为 ascii 字符串。

    例子:

    char s[50];
    sprintf(s, "%d", someInteger);
    

    现在你可以将 s 传递为 char*

    【讨论】:

    • 对不起,我的回答很垃圾。使用迈克尔的。我只是不确定 ncurses printw 做了什么,所以我写了一个解决方法。
    • 您可以删除答案。几个“坏”点:itoa——标准C中没有这种东西(只有atoi),最好使用snprintf(s,sizeof(s),"%d",someInteger)——更安全。
    【解决方案2】:

    itoa 会帮助你。

    【讨论】:

      【解决方案3】:

      itoa 函数将 int 转换为 char*。

      【讨论】:

        【解决方案4】:

        printw() 接受 const char * 作为格式说明符。你想要的是

        printw("%d",yournumber);
        

        【讨论】:

        • 出于好奇,“%d”到底是什么?
        • 您可能需要查看 printf 手册页 - linux.die.net/man/3/printf 以了解格式化的全部功能。特别是 %d 表示有符号整数作为格式字符串之后的第一个参数。但这甚至不是冰山一角;-)
        猜你喜欢
        • 2019-06-12
        • 1970-01-01
        • 2012-10-12
        • 1970-01-01
        • 2013-11-03
        • 2016-04-28
        • 2019-06-20
        • 1970-01-01
        • 2017-11-10
        相关资源
        最近更新 更多