C 我想在使用write函数时显示整数

C 我想在使用write函数时显示整数,c,integer,C,Integer,1我需要创建一个函数,显示作为参数输入的数字。函数必须能够显示int类型变量中所有可能的值 2和原型应类似于void ft_putnbrint nb;这边 这是我的密码, 结果不是整数,就像。。海鞘 它表明* 我的代码怎么了?你能更正我的密码吗?还是建议更合适的方式 加上int主函数将自动给出,所以我只需要制作原型函数 感谢您的帮助您的代码没有按预期工作的原因是,您在传递一个指向write函数的指针时传递了一个整数,write的最后一个参数应该是您写入案例中文件描述符标准输出的长度 下面是一个C

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

2和原型应类似于void ft_putnbrint nb;这边

这是我的密码, 结果不是整数,就像。。海鞘 它表明*

我的代码怎么了?你能更正我的密码吗?还是建议更合适的方式

加上int主函数将自动给出,所以我只需要制作原型函数


感谢您的帮助

您的代码没有按预期工作的原因是,您在传递一个指向write函数的指针时传递了一个整数,write的最后一个参数应该是您写入案例中文件描述符标准输出的长度

下面是一个C指针的解释,可以帮助您理解如何使用它们

下面是关于write函数的一些参考资料

在使用write之前,您需要将其视为字符串,以便可以将其转换为had之前的字符串或逐位打印

以下是您可以如何处理它

void ft_putnbr(int n) {
  char * const str_num = itoa(n);
  const size_t len = strlen(str_num)
  write(1, str_num, len);
}


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

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

printf%d\n,nb@yano你能不使用printf显示它吗?使用write函数使用write1,&nb,sizeof nb;时您会做得更好;。除非有特殊情况,INT将是多字节的,您已经告诉它只写1个字节。然而,int是二进制数据,打印原始数据可能不是您想要的。您应该首先使用以下命令将int转换为字符串。还要注意的是,使用write并不是打印到stdout的常见方式,printf和put更为常见。我假设你有一些关于使用write的作业规定,如果不是这样,就使用printf。
void ft_putnbr(int nb)
{
   char nbuf[16];
   const int len = snprintf(nbuf, sizeof nbuf, "%d", nb);
   write(1, nbuf, len);
}