2009-12-20 4 views
6

Я пишу код, который возвращает целое число, которое затем должно выводиться с помощью printw из библиотеки ncurses. Однако, поскольку printw принимает только char *, я не могу понять, как его выводить.Сохранение целого числа в char * в C++

По существу, есть способ сохранить целое число в массив символов или вывести целое число с помощью printw?

ответ

9

printw() принимает const char * в качестве спецификатора формата. Что вы хотите, это

printw("%d",yournumber); 
+1

+1 правильный ответ – dfa

+0

из любопытства, что именно «% d»? – Galileo

+2

Возможно, вы захотите найти справочную страницу printf - http://linux.die.net/man/3/printf, чтобы узнать всю мощь форматирования. в частности,% d означает целое число со знаком в качестве первого параметра после строки формата здесь. Но это даже не вершина айсберга ;-) –

0

Используйте itoa() или sprintf() для преобразования целого числа в строку ascii.

Пример:

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

Теперь и может проходить сек в символьном *

+4

Извините, мой ответ - дерьмо. Используйте Майкла. Я просто не был уверен, что делает ncurses printw, поэтому я написал обходное решение. –

+1

Вы можете удалить ответ. Несколько «плохих» точек: 'itoa' - в стандарте C (только' atoi' нет такой вещи), лучше использовать 'snprintf (s, sizeof (s),"% d ", someInteger)' - - безопаснее. – Artyom