毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 移动平台 >> 正文

QT控制台程序怎么输出中文字符

更新时间:2013-6-18:  来源:毕业论文

QT控制台程序怎么输出中文字符

#include <iostream> using namespace std; #include  <stdlib.h>   struct TreeNode {   int data;   TreeNode *leftchild,*rightchild;   TreeNode(int x,TreeNode *rc=NULL,TreeNode *lc=NULL){data=x;leftchild=lc;rightchild=rc;} }; class Tree { public: Tree(int value=0,TreeNode *p=NULL){end=value;root=p;} void outPut(TreeNode *p); void Plant(TreeNode *p); void Treetest(); private: TreeNode *root; int end; }; void Tree::outPut(TreeNode *p) { if(p!=NULL) { if(p->leftchild!=NULL) {outPut(p->leftchild);} else{ cout<<"左子树空"<<endl; } p->data++; cout<<p->data<<endl;        if(p->rightchild!=NULL) {outPut(p->rightchild);} else{ cout<<"右子树空"<<endl; }   } else{  cout<<"树空"<<endl; } } void Tree::Plant(TreeNode *p) {   int item;   cin>>item;   if(item!=end)   {   p=new TreeNode(item);   if(p!=NULL)   {    Plant(p->leftchild);    Plant(p->rightchild);   }   else  {     cerr<<"存储分配错误!"<<endl; exit(1);   }   }   else  {     p=NULL;   } } void Tree::Treetest() {    int i;    cout<<"请输入指令:1.建立二叉树;2.对二叉树操作;3.退出;"<<endl;    cin>>i;    if(i==1)    {    Plant(root);    }    if(i==2)    {      outPut(root);    }    if(i==3)    {      exit(1);    } } int main() { Tree t1; int i=10; while(i!=100) { t1.Treetest(); } return 0; }乱码了

这个语句跟Qt没关系,估计跟编译器有关
我用的vc编译的,显示的是中文

跟Qt关系不大,这和你源文件编码格式和编译器有关系。

可以给你个建议把上面的程序改成Qt版本的, 哈哈。步骤如下~
1 是用qtcreator
2 如果是, 检查
工具--选项--文本编辑器--行为 选项卡下的File Encodings 中,default Encoding下拉选框里没有中文编码(gbk、gb2132或gb18030等)。我这里是system

3 在程序里
int main(xxxx)
{
 QApplication app(xxxx);
 QTextCodec::setCodecForTr(QTextCodec::codecForName("system"));
 QTextCodec::setCodecForLocale(QTextCodec::codecForName("system"));
 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("system"));

 qDebug() << QObject::tr("中文");
 //记得中文用QObject::tr()包裹起来,这样就可以显示中文了。

 app.exec();
}

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。