• 4195阅读
  • 8回复

正则表达式的编译太诡异了,一个能通过,另一个(创建了一个QApplication对象)为什么不能?不解 [复制链接]

上一主题 下一主题
离线iiiyyyhhhsss
 

只看楼主 倒序阅读 楼主  发表于: 2010-02-01
以下两个简单的代码,代码2只是比代码1多了2行,为什么正则表达式编译就不能通过了?以下用"不同"标明了两个代码不同的地方
using namespace std;
#include <QtGui>
#include <iostream>
#include <regex.h>
//代码1:正则表达式编译-------------------能通过,程序运行输出"ok"-----------------------------------------
int main(int argc,char *argv[])
{
    char pattern[100]="[\xfb-\xfe]";
    regex_t reg;   int cflags=11;
    int rc=regcomp(&reg,pattern,cflags);
    if(rc!=0) {cout<<"error!"<<endl;} else {cout<<"ok"<<endl;}
    return 0;
}
代码2:正则表达式-------------------不能通过,程序输出"error!"-----------------------------------------
int main(int argc,char *argv[])
{
    QApplication app(argc,argv);        //不同
    char pattern[100]="[\xfb-\xfe]";
    regex_t reg;   int cflags=11;
    int rc=regcomp(&reg,pattern,cflags);
    if(rc!=0) {cout<<"error!"<<endl;} else {cout<<"ok"<<endl;}
    return app.exec();           //不同
}
[ 此帖被iiiyyyhhhsss在2010-02-03 14:03重新编辑 ]
离线iiiyyyhhhsss

只看该作者 1楼 发表于: 2010-02-01
有谁较熟悉正则表达式的?帮帮忙看看
[ 此帖被iiiyyyhhhsss在2010-02-03 14:04重新编辑 ]
离线iiiyyyhhhsss

只看该作者 2楼 发表于: 2010-02-01
看来只有我遇到这个问题?
离线henrya2
只看该作者 3楼 发表于: 2010-02-01
本来就不需要,你没有使用消息循环。
离线iiiyyyhhhsss

只看该作者 4楼 发表于: 2010-02-01
不是很明白你的意思,可否详细点?
离线iiiyyyhhhsss

只看该作者 5楼 发表于: 2010-02-01
我说的是,为什么regcomp(&reg,pattern,cflags);这个函数,在两种情况下,返回值不一样呢?
一个返回零,一个返回非零?这个跟QApplication有关吗?
离线iiiyyyhhhsss

只看该作者 6楼 发表于: 2010-02-02
??
离线iiiyyyhhhsss

只看该作者 7楼 发表于: 2010-02-03
???
离线iiiyyyhhhsss

只看该作者 8楼 发表于: 2010-02-03
我猜是字符编码的问题,但现在不知道如何解决
快速回复
限100 字节
 
上一个 下一个