Gå til innhold

hvordan gå tilbake til main


Anbefalte innlegg

har ett problem nå, driver med c++, men hvordan kommer jeg tilbake til main?

 

får denne feilmedlingen når jeg prøver:

36 main.cpp `main' undeclared (first use this function)

 

og mein er decleared, men ligger under den funksjonen jeg jobber med, og får den bare til å jobbe fra nederst og opp...

 

edit: og hvordan kan jeg fjerne all tekst i console?

Endret av aklla
Lenke til kommentar
Videoannonse
Annonse

hmm..

Når gjeldende funksjon har kjørt ferdig, vil du jo gå tilbake til funksjonen som kalte funksjonen.

(innviklet setning...)

 

int main()
{
  \\blabla

  enFunksjon(blablabla);
  return 0;
}

når "enFunksjon er ferdig med å kjøre vil du gå tilbake til main()

 

Hvis det var det du mente..

 

Edit: og når det gjelder å fjerne tekst i console, vet jeg ikke om noen ordentlig måte å gjøre det på.

Men du kan inkludere <cstdlib> og (i windows) kalle "system("cls");" eller i linux system("clear screen");

Endret av <BøNilzen>
Lenke til kommentar

Hvis det du tenker på er å kalle main() fra en annen funksjon: Ikke gjør det slik. Gjør som <BøNilzen> sier, og gå tilbake til main() ved å returnere fra en funksjon.

 

For øvrig er "clear" kommandoen for å tømme skjermen i Unix-liknende operativsystemer. Den tar ikke argumenter.

Lenke til kommentar

joda, er sikkert 1000 feil her men her er den:

#include <iostream.h>


long pluss(long p1)
{
      char operator_tre;
      long p2;
      long p3;
      cin >> p2;
      p3=p1+p2;
      cin >> (operator_tre);
      switch(operator_tre)
      {
              case '+':
                      pluss(p3);
              break;
              case '=':
                   system("cls");
              cout << "------------" << endl;
              cout << p3;
              cout << "\n============" << endl;
      }
              cin.get();
              cin.get();
              return 0;
}

long minus(long m1)
{
      char operator_to;
      long m2;
      long m3;
      cin >> m2;
      m3=m1-m2;
      cin >> (operator_to);
      switch(operator_to)
      {
              case '-':
                      minus(m3);
              return 0;
              break;
              case '=':
                   system("cls");
              cout << "------------" << endl;
              cout << m3;
              cout << "\n============" << endl;

      }

   cin.get();
   cin.get();
   return 0;

}







int main()
{
      char operator_en;

      long a;
      cout << "\nDette er en kalkulator!\nSkriv inn ett tall etterfulgt av";
      cout <<"\nregnemåte (+,-,*,/)" << endl << endl;
      cin >> a;
      cin >> operator_en;

      switch(operator_en)     {

              case '+':
                      pluss(a);
              return 0;
              break;
              case '-':
                      minus(a);
              return 0;
              break;
              return 0;
      }
   cin.get();
   cin.get();
   return 0;
}

 

har ikke drevet så lenge med c++...

 

 

edit: takk for den cls koden :)

men finnes det ingen egen kode for det istedet for å bruke den som er innebygget i windows?

Endret av aklla
Lenke til kommentar

først. siden pluss() og minus() faktisk ikke har noen verdi og returnere, vil det kansje være på sin plass og la disse være

void pluss(long p1) {}

void minus(long m1) {}

og så bytte ut "return 0;" med "return;" i dem.

 

så må du vel legge inn

using namespace std;

under include iostream , hvis ikke må du bytte alle cout og cin med std::cin og std::cout

 

og jeg tror minus er et reserved word, for jeg la til en ekstra s "minuss()" og da kompilerte programmet.

 

jeg kompilerte det i linux, bare bytta ut csl med clear, og det funka helt fint :)

 

#include <iostream>  //iostream.h er vel deprecated?

using namespace std; //så slipper du og bruke std:: forran cin og cout

void pluss(long p1)
{
    char operator_tre;
    long p2;
    long p3;
    cin >> p2;
    p3=p1+p2;
    cin >> (operator_tre);
    switch(operator_tre)
    {
            case '+':
                    pluss(p3);
            break;
            case '=':
                 system("cls");
            cout << "------------" << endl;
            cout << p3;
            cout << "\n============" << endl;
    }
            cin.get();
            cin.get();
}

void minuss(long m1)
{
    char operator_to;
    long m2;
    long m3;
    cin >> m2;
    m3=m1-m2;
    cin >> (operator_to);
    switch(operator_to)
    {
            case '-':
                    minuss(m3);
            return;
            break;
            case '=':
                 system("cls");
            cout << "------------" << endl;
            cout << m3;
            cout << "\n============" << endl;

    }

 cin.get();
 cin.get();
}


int main()
{
    char operator_en;

    long a;
    cout << "\nDette er en kalkulator!\nSkriv inn ett tall etterfulgt av";
    cout <<"\nregnemåte (+,-,*,/)" << endl << endl;
    cin >> a;
    cin >> operator_en;

    switch(operator_en)     {

            case '+':
                    pluss(a);
            return 0;
            break;
            case '-':
                    minuss(a);
            return 0;
            break;
            return 0;
    }
 cin.get();
 cin.get();
 return 0;
}

Endret av ZiZe
Lenke til kommentar

1. Det heter #include <iostream>.

2. Understrek inne i et navn er helt greit. Identifikatorer som begynner med dobbel understrek, begynner med en understrek etterfulgt av en stor bokstav eller begynner med understrek og er i det globale navnerommet er reserverte. Se seksjon 17.4.3.1 i C++-standarden.

3. minus er ikke reservert.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...