是否有可能打印實際上並沒有使用任何的*printf
函數(printf
,fprintf
(到stdout
,或者一個文件)的數(int
,float
,double
,long
等), sprintf
,snprintf
,vsprintf
,...)?打印數量,而無需使用* printf的
6
A
回答
7
如果你的libc包含一個itoa()
函數,你可以用它來將一個整數轉換爲一個字符串。
否則,您將不得不編寫代碼將數字轉換爲字符串。
itoa()
實現從C Programming Language, 2nd Edition - Kernighan and Ritchie第64頁:
/* itoa: convert n to characters in s */
void itoa(int n, char s[])
{
int i, sign;
if ((sign = n) < 0) /* record sign */
n = -n; /* make n positive */
i = 0;
do { /* generate digits in reverse order */
s[i++] = n % 10 + '0'; /* get next digit */
} while ((n /= 10) > 0); /* delete it */
if (sign < 0)
s[i++] = '-';
s[i] = '\0';
reverse(s);
}
2
只需使用write()函數和你自己格式化輸出。
3
那麼,它不難完成的整數,但工作是一個浮點數更復雜一點,有人已經發布了一個指針來解釋這一點。對於整數,你可以這樣做:
void iprint(int n)
{
if(n > 9)
{ int a = n/10;
n -= 10 * a;
iprint(a);
}
putchar('0'+n);
}
0
我認爲遇到這個問題,因爲他們寫自己的串行TX功能和需要打印一些數字最多的人。您將需要修改putc電話以適應您的設置。
void print_int(int num)
{
if (num < 0)
{
putc('-');
num = -num;
}
else if (num == 0)
{
putc('0');
return;
}
while (num != 0)
{
putc ('0'+ (num%10));
num /= 10;
}
}
這將打印一個相反的數字。
+0
問題不在於如何以相反方式打印數字。這是如何打印一個數字。 – 2017-10-05 04:07:00
2
這將導致正確的順序:
void print_int(int num){
int a = num;
if (num < 0)
{
putc('-');
num = -num;
}
if (num > 9) print_int(num/10);
putc('0'+ (a%10));
}
相關問題
- 1. 使用printf打印COLORREF類型變量
- 2. 調用的printf打印
- 3. printf的是打印2個變量
- 4. 我需要在printf中打印這個
- 5. printf打印由scanf讀取的float而不是整數參數
- 6. HTTP交互打印,而無需耗費
- 7. 打印樹,而無需遞歸
- 8. Java printf不打印
- 9. 使用printf函數在collect_set數組中打印有限數量的元素
- 10. 如何只打印小數使用printf如果小數的數量大於0?
- 11. 使用printf打印多個東西(JAVA)
- 12. 如何使用printf打印ACE_thread_t()
- 13. C:使用printf打印%符號
- 14. 如何打印出IEEE754號碼(無printf)?
- 15. 使用函數打印兩個變量
- 16. 使用結構,無法打印代碼中的房屋數量
- 17. printf只打印「1537」而不是整數的值
- 18. 的printf不打印的數據我想
- 19. 使用printf打印雙精度數字的可變數字
- 20. 打印 '%' 與C的printf/C++
- 21. printf的連續打印
- 22. 的printf(%S)打印0
- 23. 在C中使用printf打印宏變量
- 24. 如何使用printf在字符串中打印多個變量?
- 25. 在內核之外使用CUDA printf來打印設備變量
- 26. 使用printf打印由指針數組引用的值
- 27. printf後打印的額外數字
- 28. 爲什麼printf的使用從蟒蛇的ctypes不打印數量簽訂
- 29. 無需打印使用C#打印重複值
- 30. 我無法使用printf將字符打印到屏幕上
'float'和'double'不是整數。 – dreamlax 2011-04-03 08:17:38
爲什麼你需要? – gnud 2011-04-03 08:24:16
可能重複[如何打印出IEEE754號碼(不含printf)?](http://stackoverflow.com/questions/4274926/how-do-you-print-out-an-ieee754-number-without- printf) – 2011-04-03 08:29:23