是否有可能打印实际上并没有使用任何的*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