Avatar billede babafisk Nybegynder
06. maj 2003 - 13:55 Der er 4 kommentarer og
1 løsning

Fejl C2601?

Jeg er nybegynder til c++ men jeg tror jeg er ved at fatte lidt af det. Jeg har dog det problem at når jeg compiler følgene kode i MSVC++ får jeg disse fejlmeddelelser:

D:\C++\prog\vcalc\vcalcDlg.cpp(201) : error C2601: 'OnLigmed' : local function definitions are illegal
D:\C++\prog\vcalc\vcalcDlg.cpp(218) : error C2601: 'OnMinus' : local function definitions are illegal
D:\C++\prog\vcalc\vcalcDlg.cpp(279) : fatal error C1075: end of file found before the left brace '{' at 'D:\C++\prog\vcalc\vcalcDlg.cpp(260)' was matched

Her kommer koden:

void CVcalcDlg::OnPlus()
{
    CString strInput,strFunk;
    int intTal1,intTal2;
    strFunk="plus";
    GetDlgItemText(IDC_FELT,strInput);
    if(strInput == "") {
        MessageBox("Indtast venligst et tal i feltet","Fejl!",MB_ICONERROR);
    }
    else {
        intTal1 = atoi(strInput);
        SetDlgItemText(IDC_FELT,"");
        GetDlgItemText(IDC_FELT,strInput);
        if(strInput == ""){
            MessageBox("Indtast venligst et tal i feltet","Fejl!",MB_ICONERROR);
        }
        else {
            intTal2 = atoi(strInput);
    }   
}



void CVcalcDlg::OnLigmed()
{
    int intResultat;
    switch(strFunk) {
    case plus:
        intTal1+intTal2=intResultat;
    case minus:
        intTal1-intTal2=intResultat;
    case gange:
        intTal1*intTal2=intResultat;
    case divider:
        intTal1/intTal2=intResultat;
    }
    SetDlgItemText(IDC_FELT,intResultat);
}


void CVcalcDlg::OnMinus()
{
    CString strInput,strFunk;
    int intTal1,intTal2;
    strFunk="minus";
    GetDlgItemText(IDC_FELT,strInput);
    if(strInput == "") {
        MessageBox("Indtast venligst et tal i feltet","Fejl!",MB_ICONERROR);
    }
    else {
        intTal1 = atoi(strInput);
        SetDlgItemText(IDC_FELT,"");
        GetDlgItemText(IDC_FELT,strInput);
        if(strInput == ""){
            MessageBox("Indtast venligst et tal i feltet","Fejl!",MB_ICONERROR);
        }
        else {
            intTal2 = atoi(strInput);
        }   
}

void CVcalcDlg::OnGange()
{
    CString strInput,strFunk;
    int intTal1,intTal2;
    strFunk="gange";
    GetDlgItemText(IDC_FELT,strInput);
    if(strInput == "") {
        MessageBox("Indtast venligst et tal i feltet","Fejl!",MB_ICONERROR);
    }
    else {
        intTal1 = atoi(strInput);
        SetDlgItemText(IDC_FELT,"");
        GetDlgItemText(IDC_FELT,strInput);
        if(strInput == ""){
            MessageBox("Indtast venligst et tal i feltet","Fejl!",MB_ICONERROR);
        }
        else {
            intTal2 = atoi(strInput);   
        }
}

void CVcalcDlg::OnDivider()
{
    CString strInput,strFunk;
    int intTal1,intTal2;
    strFunk="divider";
    GetDlgItemText(IDC_FELT,strInput);
    if(strInput == "") {
        MessageBox("Indtast venligst et tal i feltet","Fejl!",MB_ICONERROR);
    }
    else {
        intTal1 = atoi(strInput);
        SetDlgItemText(IDC_FELT,"");
        GetDlgItemText(IDC_FELT,strInput);
        if(strInput == ""){
            MessageBox("Indtast venligst et tal i feltet","Fejl!",MB_ICONERROR);
        }
        else {
            intTal2 = atoi(strInput);
        }
}

Håber at i kan hjælpe mig.
Avatar billede jpk Nybegynder
06. maj 2003 - 14:00 #1
Du mangler en afsluttende } efter sidste else i OnPlus()
else {
            intTal2 = atoi(strInput);
}
Avatar billede jpk Nybegynder
06. maj 2003 - 14:03 #2
Hvordan man vælger at formatere sin kode er naturligvis meget individuelt, men jeg foretrækker fx nedenstående stil, så er det meget lettere at se om der fx mangler en { eller }

void CVcalcDlg::OnPlus()
{
    CString strInput,strFunk;
    int intTal1,intTal2;
    strFunk="plus";
    GetDlgItemText(IDC_FELT,strInput);
    if(strInput == "")
    {
        MessageBox("Indtast venligst et tal i feltet","Fejl!",MB_ICONERROR);
    }
    else
    {
        intTal1 = atoi(strInput);
        SetDlgItemText(IDC_FELT,"");
        GetDlgItemText(IDC_FELT,strInput);
        if(strInput == "")
        {
            MessageBox("Indtast venligst et tal i feltet","Fejl!",MB_ICONERROR);
        }
        else
        {
            intTal2 = atoi(strInput);
        }
    }   
}
Avatar billede babafisk Nybegynder
06. maj 2003 - 14:12 #3
tak for hjælpen. Du kender vel det der når man får stirret sig blind på koden :-)
Avatar billede jpk Nybegynder
06. maj 2003 - 14:23 #4
Jo, men efterhånden lærer man hvad compilerens fejlbeskeder betyder...
Avatar billede babafisk Nybegynder
06. maj 2003 - 14:28 #5
jeg ved det godt, men jeg har kun programmeret i c++ i ca. en uge og jeg fatter stadig ingenting af det der debugging så det.. :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester