Avatar billede baxos Nybegynder
30. april 2007 - 13:19 Der er 4 kommentarer og
1 løsning

Goto Problemer

#include <iostream>
#include <string>


using namespace std;


int main (int argc, char *argv[])
{
      char tekst[1];
        int write;
      forfra:
       
         
     




  cout << "Main explorer 1.0 A" << endl;
  cout << "Press 1 for : write "<< endl;
    cout << "Press 2 for : view "<< endl;
      cout << "Press 3 for : exit "<< endl;
cin >> write ;

 
 
  if (write == 1) {
                      cout << "Selected number "  ;
            cout << write << endl;
    cin >> tekst ;
    cout << ""<< endl;
   
    cin >> write;
goto forfra;
          system("pause");
          }
         
         
         
            if (write == 2) {
          cout << "Selected number "  ;
            cout << write << endl;
                  cout<< tekst << endl;
                        cin >> write;
goto forfra;
                            }
         
         
       
          system("pause");
  return 0;
}


Kan sgu ikke få den til at virke første gang og der bliver trykket 1 virker det fint men når maan så er færdig med "funktion 1" bliver den bare ved med at coute starten?
Avatar billede bertelbrander Novice
30. april 2007 - 19:28 #1
De tre forskere For, DoWhile og While publicerede allerede i 1932 en længere artikel der påviste at computer programmer der benytter goto vil være fulde af fejl og umulige at vedligeholde.

Da Bjarne nogle dekader senere opfandt >> operatoren til C++ havde han en dårlig dag.
Specielt >> og char [] er noget bras.

Resten burde være trivielt.
Avatar billede bertelbrander Novice
30. april 2007 - 20:20 #2
#include <iostream>
#include <string>
#include <sstream>

using namespace std;

template <typename T>
bool Get(T& arg, std::istream& is = cin)
{
  string S;
  getline(is, S);
  stringstream SS(S);
  return SS >> arg && SS.eof();
}


int main()
{
  string Text;
  int write;
  do
  {
      cout << "Main explorer 1.0 A" << endl;
      cout << "Press 1 for : write "<< endl;
      cout << "Press 2 for : view "<< endl;
      cout << "Press 3 for : exit "<< endl;
      Get(write);
      if(write == 1)
      {
        cout << "Selected number "  ;
        cout << write << endl;
        getline(cin, Text);
      }
      if(write == 2)
      {
        cout << "Selected number ";
        cout << write << endl;
        cout << Text << endl;
      }
  }
  while(write != 3);
}
Avatar billede baxos Nybegynder
30. april 2007 - 23:49 #3
Takker vil du forklare lidt hvad du har gjort og så os smide et svar?
Avatar billede bertelbrander Novice
01. maj 2007 - 00:06 #4
Jeg har lavet dine goto om til en do-while
Lavet cin >> om til getline(cin, ...)
Bruger std::string i stedet for char []

Jeg samler ikke på point.
Avatar billede baxos Nybegynder
14. september 2007 - 00:12 #5
lukker
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