Sida 1 av 1

initializer expression list treated as compound expression ?? [LÖST]

Postat: 02 aug 2007, 01:57
av Gryshnozk
Hejsan, jag håller på och försöker lära mig lite c++ och nu är det så att jag har ett litet testprogram som jag skulle köra in lite referensvariabler för att göra det lite lättare att läsa huvudkoden. Jag fick en del felmeddelanden när jag skulle kompilera först men jag har lyckats få ner det till ett felmeddelande nu.

error: initializer expression list treated as compound expression

Jag vet inte vad detta betyder eller vad som är fel, och google är inget som gör mig mycket klokare.

Edit: Jag testade att plocka ut funktionen och kompilera men jag får inga felmeddelanden där.
Edit2: Jag verkar inte få någon output av funktionen som ska skriva ut och hämta in lite saker.

Tack på förhand för all ev. hjälp :)


Glömde koden först :P

Det den gör är att rita en triangel.

Kod: Markera allt

#include <iostream>



using namespace std;


void fragor(int &hojd, char &vanster, char &mitten, char &hoger, char &sista);
void rad(int start, int slut, char vanster, char mitt, char hoger);


int main()

{

    int hojd;

    char hoger;
    char mitten;

    char vanster;


    int start;

    int slut;

    char sista;

    

    void fragor(hojd, vanster, mitten, hoger, sista);

    

    ///////
    

    for(int i=1 ; i<hojd ; i++)

    {

        rad(1, hojd-i, ' ', ' ', ' '); //Utrymmet innan triangelraden

        rad(1, i*2, vanster, mitten, hoger); //triangelraden

        cout << endl;

    }

    

    rad(1, hojd*2, sista, sista, sista); //sista raden

}

////////////////////////////////////////////////////////////////////////////////////////   

    
    void fragor(int &hojd, char &vanster, char &mitten, char &hoger, char &sista)
    {
        cout << "Hur hog vill du att din triangel ska vara?" << endl;

        cin >> hojd;
        

        cout << endl << endl << "Vilket tecken vill du ha i vanstra kanten av figuren?" << endl;

        cin >> vanster;

        
        cout << endl << endl << "Vilket tecken vill du ha i mitten av figuren?" << endl;

        cin >> mitten;
        

        cout << endl << endl << "Vilket tecken vill du ha i hogra kanten av figuren?" << endl;

        cin >> hoger;

        

        cout << endl << endl << "Vilket tecken vill du ha i sista raden?" << endl;

        cin >> sista;
    }
    

    

    void rad(int start, int slut, char vanster, char mitt, char hoger)

    {

        

	for(int i=start; i<=slut; i++)

	{

	    if(i==start)

                cout << vanster;

	    

	    else if(i==slut)

		cout << hoger;

	    

	    else

                cout << mitt;

	}

	

    }
Det är säkerligen inte den snyggaste eller effektivaste metoden men det kommer med tiden :)

SV: initializer expression list treated as compound expression ??

Postat: 02 aug 2007, 04:35
av Gryshnozk
Ojsan, glömde den biten.

SV: initializer expression list treated as compound expression ??

Postat: 02 aug 2007, 10:29
av gasol
Du hade skriver void före funktionen fragor när den körs första gången... det är det som är felet...

Alltså
  void fragor(hojd, vanster, mitten, hoger, sista);

ska vara
  fragor(hojd, vanster, mitten, hoger, sista);


Kod: Markera allt

<arlong-park /home/gasol
> ./a.out 
Hur hog vill du att din triangel ska vara?
4


Vilket tecken vill du ha i vanstra kanten av figuren?
s


Vilket tecken vill du ha i mitten av figuren?
f


Vilket tecken vill du ha i hogra kanten av figuren?
k


Vilket tecken vill du ha i sista raden?
b
   sk
  sffk
 sffffk
bbbbbbbb                                             
                                   

SV: initializer expression list treated as compound expression ??

Postat: 02 aug 2007, 10:55
av Gryshnozk
Tackar gasol :) Jag förstår inte hur jag kunde missa den, men nu lär jag inte göra om samma fel igen på att tag :p