2009-12-20 38 views
6

Tôi đang viết một số mã trả về một số nguyên, sau đó cần được xuất ra bằng cách sử dụng printw từ thư viện ncurses. Tuy nhiên, kể từ khi printw chỉ mất char *, tôi không thể tìm ra cách để xuất nó.Lưu trữ một số nguyên vào một char * trong C++

Về cơ bản, có cách nào để lưu trữ một số nguyên vào mảng char hoặc xuất một số nguyên bằng printw không?

Trả lời

9

printw() chấp nhận const char * làm trình định dạng định dạng. Những gì bạn muốn là

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

+1 câu trả lời đúng – dfa

+0

ngoài sự tò mò, chính xác "% d" là gì? – Galileo

+2

Bạn có thể muốn tra cứu trang printf manpage - http://linux.die.net/man/3/printf để tìm hiểu toàn bộ sức mạnh của định dạng. cụ thể% d có nghĩa là số nguyên đã ký làm thông số đầu tiên sau chuỗi định dạng tại đây. Nhưng đó không phải là đỉnh của tảng băng trôi ;-) –

0

Sử dụng itoa() hoặc sprintf() để chuyển đổi số nguyên thành chuỗi ascii.

Ví dụ:

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

bây giờ u có thể vượt qua như là char *

+4

Xin lỗi, câu trả lời của tôi là crap. Sử dụng của Michael. Tôi chỉ không chắc chắn những gì ncurses printw làm, vì vậy tôi đã viết một workaround. –

+1

Bạn có thể xóa câu trả lời. Một số điểm "xấu": 'itoa' - không có điều gì trong tiêu chuẩn C (chỉ' atoi'), tốt hơn nên sử dụng 'snprintf (s, sizeof (s),"% d ", someInteger)' - - an toàn hơn. – Artyom

Các vấn đề liên quan