首页 > 解决方案 > 我想在使用写入功能时显示整数

问题描述

1)我需要创建一个函数来显示作为参数输入的数字。该函数必须能够显示 int 类型变量中的所有可能值。

2)原型应该是void ft_putnbr(int nb);这样的

这是我的代码,

#include <unistd.h>

void    ft_putnbr(int nb)
{
    write(1, &nb, 1);
}

int     main()
{
    ft_putnbr(42);
}

结果不是整数,就像.. asciicode 显示“*”

我的代码有什么问题?你能纠正我的代码吗?或建议更合适的方式?

plus) int main 函数会自动给出,所以我只需要制作原型函数

谢谢你的帮助

标签: cinteger

解决方案


您需要构建数字的字符串表示形式,否则您将打印二进制文件。

void ft_putnbr(int nb)
{
   char nbuf[16];
   const int len = snprintf(nbuf, sizeof nbuf, "%d", nb);
   write(1, nbuf, len);
}

推荐阅读