在C++中将整数存储到char*中

6

我正在编写一些返回整数的代码,然后需要使用ncurses库中的printw将其输出。但是,由于printw只接受char*类型,我无法弄清如何输出它。

基本上,是否有一种方法可以将整数存储到char数组中,或者使用printw输出一个整数?

4个回答

10

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

printw("%d",yournumber);

出于好奇,"%d"到底是什么? - Galileo
2
你可能想查阅 printf 的 manpage - http://linux.die.net/man/3/printf 以了解格式化的全部功能。特别是 %d 表示在格式字符串后的第一个参数为有符号整数。但这还只是冰山一角 ;-) - Michael Krelin - hacker

1

itoa函数将int类型转换为char*类型。


0
使用itoa()或sprintf()将整数转换为ASCII字符串。
示例:
char s[50];
sprintf(s, "%d", someInteger);

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


4
抱歉,我的回答没什么用。使用Michael的吧。 我只是不确定ncurses printw函数的作用,所以写了一个解决方法。 - Pavel Radzivilovsky
1
您可以删除答案。几个“不好”的点:itoa-- 标准C中没有这样的东西(只有atoi),最好使用snprintf(s,sizeof(s),"%d",someInteger) -- 更安全。 - Artyom

0

itoa会对你有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接