我有一个任务,我需要传递一个指向我的函数的指针,并用"WRITE"在我的函数中显示它.

#include <unistd.h>
#include <stdio.h>

void ft_ft(int *nbr){
    //printf("%d\n", *nbr);
    char c = *nbr;

    write(1, &c, 1);

}

int main(){
    int nbr = 42;
    ft_ft(&nbr);
}

正如您所看到的,我try 将int值转换为char,因为从参数中获取指针不起作用.另一方面,这个也不好,你能帮帮我吗?

错误消息:

[正在运行](其所在的文件夹))&GCC(文件名)... 输出:* [完成]在0.046秒内退出,代码=0

所以它实际上运行了代码,但它不是我想要的输出,我错过了什么?

Printf()运行得很好,但我无法让"WRITE"工作.

先谢谢你

推荐答案

@CraigEstey我如何才能将您的 comments 标记为答案^? 7版本7口述7

好的,这就是答案.要用write代替printf,我们可以先用snprintf,然后用write:

void
ft_ft(int *nbr)
{
    char buf[100];
    size_t len = snprintf(buf, sizeof buf, "%d\n", *nbr);
    write(1, buf, len);
}

C++相关问答推荐

了解一些CLIPS原语数据类型

C指针地址和转换

MISRA C:2012 11.3违规强制转换(FLOAT*)到(uint32_t*)

使用NameSurname扫描到两个单独的字符串

如何使fputs功能提示错误输入并要求用户重新输入.程序停止而不是请求新的输入

如何在C宏中确定 struct 中元素的类型?

为什么我一直收到分段错误?

向上强制转换C中的数值类型总是可逆的吗?

Clang警告称,`ffi_type`与`sizeof`不兼容

用C++构建和使用DLL的困惑

为四维数组中的Dim-1和Dim-3重新分配空间

C-try 将整数和 struct 数组存储到二进制文件中

为什么我的半数组测试和奇数组测试不起作用?(我使用Assert进行调试)

生成的头文件不包括用户定义的文件

将size_t分配给off_t会产生符号转换错误

如果类型是新的,offsetof是否与typeof一起工作?

malloc 属性不带参数

使用邻接表创建图

GDB 用内容初始化数组

C23 中的 [[reproducible]] 和 [[unsequenced]] 属性是什么?什么时候应该使用它们?