首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将QString转换为const *

将QString转换为const *
EN

Stack Overflow用户
提问于 2015-11-17 09:21:07
回答 2查看 1.5K关注 0票数 3

我正在开发一个Qt5软件,用于在我的mac上发送短信。我使用UMTS棒和库"unistd.h"向文件描述符写入。问题是我不知道如何使用函数T计数)“。在Qt5中,我有一个QTextEdit,我希望将内部的文本作为参数传递给函数write

下面的代码没有错误,但不起作用。有什么错误吗?

代码语言:javascript
复制
QString smsText = ui->smsTextField->toPlainText();

std::string utf8_text = smsText.toUtf8().constData();
const void * a = utf8_text.c_str();

write(fd, &a, sizeof(a));
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-17 09:45:08

尝试:

代码语言:javascript
复制
write(fd, utf8_text.c_str(), utf8_text.size()); 

&a包含void指针的地址。此外,当sizeof(a)是指针时,a总是返回相同的长度(可能是4或8个字节,取决于您的体系结构)。

票数 2
EN

Stack Overflow用户

发布于 2015-11-17 09:22:50

有两个相关的问题。您使用&asizeof(a)作为参数。这基本上意味着将存储在指针a中的地址写入流中。

相反,您应该将数据传递到该地址,并根据字符串的长度给出大小:

代码语言:javascript
复制
write(fd, a, utf8_text.size());
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33753161

复制
相关文章

相似问题

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