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/