首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将浮点转换为C中的字符串,然后用Python读取它

将浮点转换为C中的字符串,然后用Python读取它
EN

Stack Overflow用户
提问于 2019-03-31 16:22:57
回答 1查看 139关注 0票数 0

我正在将浮点变量转换为C中的字符串,并使用Linux中的命名管道将其发送到Python。问题是,我阅读了乱七八糟的字符以及Python方面的实际值。

C代码将浮点数转换为字符串

代码语言:javascript
复制
char str[64];

sprintf(str, "%f\n", angle);
write(fd_fifo, str, sizeof(str));

Python代码读取接收到的值并在终端上打印

代码语言:javascript
复制
#!/usr/bin/python

import os
import errno
import time

FIFO = '/tmp/bldc_fifo'

try:
    os.mkfifo(FIFO)
except OSError as oe: 
    if oe.errno != errno.EEXIST:
        raise

print("Opening FIFO...")
with open(FIFO, encoding='utf-8', errors='ignore') as fifo:
    print("FIFO opened")
    while True:
        time.sleep(0.1)
        data = fifo.read()
        print(data)

在终端打印中我看到了这样的东西:

4\W`U7z3\ENU11.415311

,我的期望是看到:

11.415311

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-31 18:57:46

使用strlen()而不是sizeof

代码语言:javascript
复制
char foo[99] = "the quick fox";
sizeof foo; /* 99 */
strlen(foo); /* 13 */

在代码中,错误出现在对write()的调用中。

代码语言:javascript
复制
//write(fd_fifo, str, sizeof(str));
write(fd_fifo, str, strlen(str));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55442948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档