簡體   English   中英

將QString轉換為const void *

[英]Convert QString to const void*

我正在用Qt5開發一個用於在我的mac上發送短信的軟件。 我正在使用UMTS Stick和庫"unistd.h"來寫入文件描述符。 問題是我不知道如何使用函數“ssize_t write(int fd,const void * buf,size_t count)” 在Qt5中我有一個QTextEdit ,我想將文本作為參數傳遞給函數write

我沒有得到以下代碼的錯誤,但它不起作用。 有錯嗎?

QString smsText = ui->smsTextField->toPlainText();

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

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

有兩個相關的問題。 您使用&asizeof(a)作為參數。 這基本上意味着您將存儲在指針a的地址寫入流中。

您應該該地址傳遞數據,其大小由字符串的長度給出:

write(fd, a, utf8_text.size());

嘗試:

write(fd, utf8_text.c_str(), utf8_text.size()); 

&a包含void指針的地址。 此外, sizeof(a) ,當a是指針時,將始終返回相同的長度(可能是4或8個字節,具體取決於您的體系結構)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM