| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7031 人关注过本帖
标题:第一次用c++编译器出现奇怪的报错
只看楼主 加入收藏
刚学的小白
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-5-28
收藏
得分:0 
回复 10楼 TonyDeng
按照您说的方式报错确实减少了很多,但是出现了这样的报错,真的觉得很抱歉,但是不得不再打扰您
 error C2059: 语法错误 : “namespace”
1>d:\我的文档\visual studio 2008\projects\bishe\bishe\init.cpp(5) : error C2238: 意外的标记位于“;”之前
1>d:\我的文档\visual studio 2008\projects\bishe\bishe\init.cpp(70) : fatal error C1075: 与左侧的 大括号“{”(位于“d:\我的文档\visual studio 2008\projects\bishe\bishe\tools.h(2)”)匹配之前遇到文件结束

这个是Queue类的源文件
#include"stdafx.h"
#include"tools.h"
using namespace std;
Queue::Queue(int size)
{
    maxsize=size;
    q=new int[maxsize];
    front=0;
    rear=0;
    i=0;
    n=0;
}

void Queue::Add(int &x)
{
    q[i]=x;
    rear=rear+1;
    if(i<(maxsize-1))
        i++;
    else
        i=0;
 }

void Queue::Delete()
{
    front=front+1;
    q[n]=0;
    if(n<(maxsize-1))
        n++;
    else
        n=0;
}


bool Queue::Search(int &x)
{
    int k;
    for(k=0;k<maxsize;k++)
    {
        if(q[k]==x)
        {
            return 1;
            break;
        }
        else
            return 0;
    }
}

Queue::~Queue()
{
    delete q;
}


这个是Gate类的源文件
#include"stdafx.h"
#include"tools.h"
using namespace std;
Gate::Gate(int inNo1, int ioutNo){
    InStr1_No=inNo1;
    OutNo=ioutNo;
    InStr1_CC0=InStr1_CC1=(InStr1_No<0)?1:1*10^7;
    OutNo=OutNewCCO=OutNewCC1=OutOldCCO=OutOldCC1=1*10^7;
    Pnext1=Pnext2=Pnext3=NULL;
    InStr2_No=InStr3_No=-1*10^7;
}

Gate::Gate(int inNo1, int inNo2, int ioutNo){
    InStr1_No=inNo1;
    InStr2_No=inNo2;
    OutNo=ioutNo;
    InStr1_CC0=InStr1_CC1=(InStr1_No<0)?1:1*10^7;
    InStr2_CC0=InStr2_CC1=(InStr2_No<0)?1:1*10^7;
    OutNo=OutNewCCO=OutNewCC1=OutOldCCO=OutOldCC1=1*10^7;
    Pnext1=Pnext2=Pnext3=NULL;
    InStr3_No=-1*10^7;
}

Gate::Gate(int inNo1, int inNo2,int inNo3, int ioutNo){
    InStr1_No=inNo1;
    InStr2_No=inNo2;
    InStr3_No=inNo3;
    OutNo=ioutNo;
    InStr1_CC0=InStr1_CC1=(InStr1_No<0)?1:1*10^7;
    InStr2_CC0=InStr2_CC1=(InStr2_No<0)?1:1*10^7;
    InStr3_CC0=InStr3_CC1=(InStr3_No<0)?1:1*10^7;
    OutNo=OutNewCCO=OutNewCC1=OutOldCCO=OutOldCC1=1*10^7;
    Pnext1=Pnext2=Pnext3=NULL;
}


void Gate::ChangeNextIn()
{
    if(Pnext1!=NULL)
    {
        if(OutNo=Pnext1->InStr1_No){
        Pnext1->InStr1_CC0=OutNewCCO;
        Pnext1->InStr1_CC1=OutNewCC1;
        }
        else if(OutNo=Pnext1->InStr2_No){
        Pnext1->InStr2_CC0=OutNewCCO;
        Pnext1->InStr2_CC1=OutNewCC1;
        }
        else
            {
        Pnext1->InStr3_CC0=OutNewCCO;
        Pnext1->InStr3_CC1=OutNewCC1;
        }
    }
    if(Pnext2!=NULL)
    {
        if(OutNo=Pnext2->InStr1_No){
        Pnext2->InStr1_CC0=OutNewCCO;
        Pnext2->InStr1_CC1=OutNewCC1;
        }
        else if(OutNo=Pnext2->InStr2_No){
        Pnext2->InStr2_CC0=OutNewCCO;
        Pnext2->InStr2_CC1=OutNewCC1;
        }
        else
            {
        Pnext2->InStr3_CC0=OutNewCCO;
        Pnext2->InStr3_CC1=OutNewCC1;
        }
    }
    if(Pnext3!=NULL)
    {
        if(OutNo=Pnext3->InStr1_No){
        Pnext3->InStr1_CC0=OutNewCCO;
        Pnext3->InStr1_CC1=OutNewCC1;
        }
        else if(OutNo=Pnext3->InStr2_No){
        Pnext3->InStr2_CC0=OutNewCCO;
        Pnext3->InStr2_CC1=OutNewCC1;
        }
        else
            {
        Pnext3->InStr3_CC0=OutNewCCO;
        Pnext3->InStr3_CC1=OutNewCC1;
        }
    }
}


void Gate::Push(Queue &qu)
{
    if((OutOldCCO!=OutNewCCO)||(OutOldCC1!=OutNewCC1))
    {
        OutOldCCO=OutNewCCO;
        OutOldCC1=OutNewCC1;
        if(Pnext1!=NULL)
        {
            if(~qu.Search(Pnext1->OutNo))
                qu.Add(Pnext1->OutNo);
        }
        if(Pnext2!=NULL)
        {
            if(~qu.Search(Pnext2->OutNo))
                qu.Add(Pnext2->OutNo);
        }
        if(Pnext3!=NULL)
        {
            if(~qu.Search(Pnext3->OutNo))
                qu.Add(Pnext3->OutNo);
        }
    }
}


void Gate::add2(int &y, int &x1, int &x2)
{
    if((x1<1*10^7)&&(x2<1*10^7))
        y=x1+x2+1;
    else
        y=1*10^7;
}


void Gate::add3(int &y, int &x1, int &x2,int &x3)
{
    if((x1<1*10^7)&&(x2<1*10^7)&&(x3<1*10^7))
        y=x1+x2+x3+1;
    else
        y=1*10^7;
}


void Gate::min2(int &y, int x1, int x2)
{
    if(x1<x2)
        y=x1;
    else
        y=x2;
    if(y<1*10^7)
        y=y+1;
}



void Gate::min3(int &y, int &x1, int &x2, int &x3)
{
    if((x1<x2)&&(x1<x3))
        y=x1;
    else
        if((x2<x3)&&(x2<x1))
           y=x2;
        else
            y=x3;
    if(y<1*10^7)
        y=y+1;
}
2015-05-29 14:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
1>d:\我的文档\visual studio 2008\projects\bishe\bishe\init.cpp(5) : error C2238: 意外的标记位于“;”之前

init.cpp文件的第5行,就这样看。

授人以渔,不授人以鱼。
2015-05-29 14:31
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:20 
顺便说一句,你刚学(其实不是刚学也一样),最好不要用using namespace std这样的方式,在使用諸如cout、cin之类的东西时,直接写std::cout和std::cin,这样不会出现你现在的错误。

授人以渔,不授人以鱼。
2015-05-29 14:33
刚学的小白
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-5-28
收藏
得分:0 
回复 10楼 TonyDeng
按照您说的改了之后报错确实少了很多,但是出现了下面的报错,我把源程序贴出来,虽然觉得很抱歉,但是还是请您在帮忙看下
:\我的文档\visual studio 2008\projects\bishe\bishe\bishe.cpp(6) : error C2059: 语法错误 : “namespace”
1>d:\我的文档\visual studio 2008\projects\bishe\bishe\bishe.cpp(6) : error C2238: 意外的标记位于“;”之前
1>d:\我的文档\visual studio 2008\projects\bishe\bishe\bishe.cpp(36) : fatal error C1075: 与左侧的 大括号“{”(位于“d:\我的文档\visual studio 2008\projects\bishe\bishe\tools.h(2)”)匹配之前遇到文件结束



#include"stdafx.h"
#include"tools.h"
using namespace std;
Gate::Gate(int inNo1, int ioutNo){
    InStr1_No=inNo1;
    OutNo=ioutNo;
    InStr1_CC0=InStr1_CC1=(InStr1_No<0)?1:1*10^7;
    OutNo=OutNewCCO=OutNewCC1=OutOldCCO=OutOldCC1=1*10^7;
    Pnext1=Pnext2=Pnext3=NULL;
    InStr2_No=InStr3_No=-1*10^7;
}

Gate::Gate(int inNo1, int inNo2, int ioutNo){
    InStr1_No=inNo1;
    InStr2_No=inNo2;
    OutNo=ioutNo;
    InStr1_CC0=InStr1_CC1=(InStr1_No<0)?1:1*10^7;
    InStr2_CC0=InStr2_CC1=(InStr2_No<0)?1:1*10^7;
    OutNo=OutNewCCO=OutNewCC1=OutOldCCO=OutOldCC1=1*10^7;
    Pnext1=Pnext2=Pnext3=NULL;
    InStr3_No=-1*10^7;
}

Gate::Gate(int inNo1, int inNo2,int inNo3, int ioutNo){
    InStr1_No=inNo1;
    InStr2_No=inNo2;
    InStr3_No=inNo3;
    OutNo=ioutNo;
    InStr1_CC0=InStr1_CC1=(InStr1_No<0)?1:1*10^7;
    InStr2_CC0=InStr2_CC1=(InStr2_No<0)?1:1*10^7;
    InStr3_CC0=InStr3_CC1=(InStr3_No<0)?1:1*10^7;
    OutNo=OutNewCCO=OutNewCC1=OutOldCCO=OutOldCC1=1*10^7;
    Pnext1=Pnext2=Pnext3=NULL;
}


void Gate::ChangeNextIn()
{
    if(Pnext1!=NULL)
    {
        if(OutNo=Pnext1->InStr1_No){
        Pnext1->InStr1_CC0=OutNewCCO;
        Pnext1->InStr1_CC1=OutNewCC1;
        }
        else if(OutNo=Pnext1->InStr2_No){
        Pnext1->InStr2_CC0=OutNewCCO;
        Pnext1->InStr2_CC1=OutNewCC1;
        }
        else
            {
        Pnext1->InStr3_CC0=OutNewCCO;
        Pnext1->InStr3_CC1=OutNewCC1;
        }
    }
    if(Pnext2!=NULL)
    {
        if(OutNo=Pnext2->InStr1_No){
        Pnext2->InStr1_CC0=OutNewCCO;
        Pnext2->InStr1_CC1=OutNewCC1;
        }
        else if(OutNo=Pnext2->InStr2_No){
        Pnext2->InStr2_CC0=OutNewCCO;
        Pnext2->InStr2_CC1=OutNewCC1;
        }
        else
            {
        Pnext2->InStr3_CC0=OutNewCCO;
        Pnext2->InStr3_CC1=OutNewCC1;
        }
    }
    if(Pnext3!=NULL)
    {
        if(OutNo=Pnext3->InStr1_No){
        Pnext3->InStr1_CC0=OutNewCCO;
        Pnext3->InStr1_CC1=OutNewCC1;
        }
        else if(OutNo=Pnext3->InStr2_No){
        Pnext3->InStr2_CC0=OutNewCCO;
        Pnext3->InStr2_CC1=OutNewCC1;
        }
        else
            {
        Pnext3->InStr3_CC0=OutNewCCO;
        Pnext3->InStr3_CC1=OutNewCC1;
        }
    }
}


void Gate::Push(Queue &qu)
{
    if((OutOldCCO!=OutNewCCO)||(OutOldCC1!=OutNewCC1))
    {
        OutOldCCO=OutNewCCO;
        OutOldCC1=OutNewCC1;
        if(Pnext1!=NULL)
        {
            if(~qu.Search(Pnext1->OutNo))
                qu.Add(Pnext1->OutNo);
        }
        if(Pnext2!=NULL)
        {
            if(~qu.Search(Pnext2->OutNo))
                qu.Add(Pnext2->OutNo);
        }
        if(Pnext3!=NULL)
        {
            if(~qu.Search(Pnext3->OutNo))
                qu.Add(Pnext3->OutNo);
        }
    }
}


void Gate::add2(int &y, int &x1, int &x2)
{
    if((x1<1*10^7)&&(x2<1*10^7))
        y=x1+x2+1;
    else
        y=1*10^7;
}


void Gate::add3(int &y, int &x1, int &x2,int &x3)
{
    if((x1<1*10^7)&&(x2<1*10^7)&&(x3<1*10^7))
        y=x1+x2+x3+1;
    else
        y=1*10^7;
}


void Gate::min2(int &y, int x1, int x2)
{
    if(x1<x2)
        y=x1;
    else
        y=x2;
    if(y<1*10^7)
        y=y+1;
}



void Gate::min3(int &y, int &x1, int &x2, int &x3)
{
    if((x1<x2)&&(x1<x3))
        y=x1;
    else
        if((x2<x3)&&(x2<x1))
           y=x2;
        else
            y=x3;
    if(y<1*10^7)
        y=y+1;
}







#include"stdafx.h"
#include"tools.h"
using namespace std;
Queue::Queue(int size)
{
    maxsize=size;
    q=new int[maxsize];
    front=0;
    rear=0;
    i=0;
    n=0;
}

void Queue::Add(int &x)
{
    q[i]=x;
    rear=rear+1;
    if(i<(maxsize-1))
        i++;
    else
        i=0;
 }

void Queue::Delete()
{
    front=front+1;
    q[n]=0;
    if(n<(maxsize-1))
        n++;
    else
        n=0;
}


bool Queue::Search(int &x)
{
    int k;
    for(k=0;k<maxsize;k++)
    {
        if(q[k]==x)
        {
            return 1;
            break;
        }
        else
            return 0;
    }
}

Queue::~Queue()
{
    delete q;
}
2015-05-29 14:37
刚学的小白
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2015-5-28
收藏
得分:0 
回复 13楼 TonyDeng
好的,非常感谢您
2015-05-29 14:38
对的mr
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-12-13
收藏
得分:0 
回复 15楼 刚学的小白
这个问题您最后是怎么解决的,望赐教;
2016-12-13 14:05
快速回复:第一次用c++编译器出现奇怪的报错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031897 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved