1樓:在晴天的雨傘
char*轉換
qt下面,字串都用qstring,確實給開發者提供了方便,想想vc裡面定義的各種變數型別,而且函式引數型別五花八門,經常需要今年新那個型別轉換
qt再使用第三方開源庫時,由於庫的型別基本上都是標準的型別,字串遇的多的就是char*型別
在qt下怎樣將qstring轉char*呢,需要用到qbytearray類,qbytearray類的說明詳見qt幫助文件。
因為char*最後都有一個‘/0’作為結束符,而採用qstring::tolatin1()時會在字串後面加上‘/0’
方法如下:
qstring str;
char* ch;
qbytearray ba = str.tolatin1();
ch=ba.data();
這樣就完成了qstring向char*的轉化。經測試程式執行時不會出現bug
注意第三行,一定要加上,不可以str.tolatin1().data()這樣一部完成,可能會出錯。
補充:以上方法當qstring裡不含中文時,沒有問題,但是qstring內含有中文時,轉換為char*就是亂碼,採用如下方法解決:
方法1:
新增gbk編碼支援:
#include
qtextcodec::setcodecfortr(qtextcodec::codecforname("gbk"));
qtextcodec::setcodecforlocale(qtextcodec::codecforname("gbk"));
然後改變上面的第三行為:qbytearray ba = str.toloacl8bit(); toloacl8bit支援中文
方法2:
先將qstring轉為標準庫中的string型別,然後將string轉為char*,如下:
std::string str = filename.tostdstring();
const char* ch = str.c_str();
2樓:匿名使用者
#include
#include
using namespace std;
class my
my(const char * s)
my(const my & s)
my(const string & s)
my operator =(const my & s)char operator (int index) constbool operator ==(const my & s)bool operator !=(const my & s)bool operator <(const my & s)friend my operator +(const my & a,const my & b)
friend ostream & operator <<(ostream & os,my & s)
private:
string str;
};int main()
定義student類儲存學生資訊(包括學號、姓名和成績),過載提取運算子和插入運算子實現學生資訊的 10
3樓:soring的春天
過載就是實際運算子的算術功能,比如說類a與類b,類a中有變數aa, 類b中有變數bb, 通常的搞法是a.aa + b.bb = xx, 過載後就是a+b = xx,
4樓:育知同創教育
多去複習下吧 這個不難 學到的知識是你自己的誰也拿不走
5樓:拷你妹
好好學習,別再糊弄老師了
設計描述圓的circle類,該類包括的屬性有 圓心座標x,y和圓的半徑radius包
include define pi 3.14 class circle circle circle void circle setpoint int a,int b void circle setradius float c float circle getarea int main 個人覺得設定圓...
工業設計包括建築設計嗎,工業設計包括建築設計嗎?
建築設計跟工業設計應該是並列的範圍。互相之間有重合。用維恩圖來畫就是兩個部分重疊的圓。工業設計包括 視覺傳達設計,產品設計,環境藝術設計。建築設計可以有 工業設計包括產品設計 跟景觀設計 景觀設計裡面有涉及到這方面 建築設計屬於工業設計嗎 廣義上講包括 工業設計 industrial design ...
結構設計包括哪些,結構設計包括哪些
這個可多了,結構很廣的 這個可多了,結構很廣的。一般房屋建築 橋梁 道路等等。有興趣的可以去 土木結構論壇 看看 推薦你看看這個部落格 結構部落格。是乙個在設計院從事結構設計的人寫的,應該對你會有幫助的。按部分 基礎 牆柱 梁 板。按專業 道路 橋梁 隧道 房建等。按分項 混凝土 鋼筋 鋼結構。這個...