c - 使用 write 打印 float

标签 c floating-point

write 函数不会在以下代码中打印 float :

#include <unistd.h>

int main(){

    float f = 4.5;

    write(1,&f,sizeof float);

    return 0;
}

这导致:

�@

鉴于:

int main(){

    char *c = "Hello world";

    write (1,c,strlen(c)+1);

    return 0;
}

按预期打印 Hello world

我错过了什么?

提前致谢。

最佳答案

write 以 float 的二进制表示形式输出字节。这些字节甚至并不总是对应于可读字符,更不用说数字本身的文本表示了。

我猜您想将数字转换为人类可读的文本。这就是 printf 的用途:

printf("%f", f);

关于c - 使用 write 打印 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2709117/

相关文章:

c - 使用在 main1() 中生成的值并在 main2() 中使用它们

c - 通过套接字流式传输 execvp 输出

c - 我如何决定 c 中的 float 应该使用多少位小数

unit-testing - 有没有办法使用 PHPUnit 来确保比较的 float 完全相等?

c++ - C++ 中的 3.5 和 3.5f 是否相同?

c - 如何在 C 中读取 UTF-8 文本文件?

c - 为什么我的程序要在非闰年中添加额外的一天?

floating-point - 哪些浮点运算会产生安静/信号 NaN?

php - php中相近的数字相减

c - 为结构体指针赋值的语法