2016-04-24 6 views
-1

Ich bin sehr neu in der Programmierung, ich habe diesen großen Code, aber wenn ich versuche, die Daten zu drucken druckt die String-Variable, können Sie helfen? dies ist nur für ich benutze "goto" nur für praktische reassons.Zeichenkette no print C++

#include <iostream> 
    #include <string> 
    #include <cstdlib> 
    using namespace std; 

    class producto 
    { 
    public: 
     int id; 
     string nombre; 
     string descripcion; 
     int precio; 
     void registrar(); 
     void ver(); 
    }; 
    void producto::registrar() 
    { 
     cout << "Codigo:" << endl; 
     cin >> id; 
     cin.ignore(); 
     cout << "Nombre del producto:" << endl; 
     getline(cin, nombre); 
     cout << "Descripcion del producto:" << endl; 
     getline(cin, descripcion); 
     cout << "Precio:" << endl; 
     cin >> precio; 

    } 
    void producto::ver() 
    { 
     cout << "ID del producto:"; 
     cout << id << endl; 
     cout << "Nombre del producto:" << endl; 
     cout << nombre; 
     cout << "Descripcion del producto:"; 
     cout << descripcion<<endl; 
     cout << "Precio:"; 
     cout << "$" << precio << endl; 

    } 
int main() 
{ 
menu1: 
    int menu; 
    producto cosa; 
    cout << "************************" << endl; 
    cout << "1.- Registrar Producto" << endl; 
    cout << "2.- Ver Producto" << endl; 
    cout << "************************" << endl; 
    cin >> menu; 
    cin.ignore(); 
    switch (menu) 
    { 
    case 1: 
     cout << "INGRESE PRODUCTO NUEVO:\nPresione enter para continuar" << endl; 
     cin.ignore(); 
     system("cls"); 
     cosa.registrar(); 
     cin.ignore(); 
     break; 
    case 2: 
     cosa.ver(); 
     cout << "Presione enter para regresar al menu principal." << endl; 
     cin.ignore(); 
     break; 

    } 
    goto menu1; 
    return 0; 
} 

bearbeiten Hier ist der int main

+0

Was ist Ihre 'Hauptfunktion'? –

+0

Könnten Sie ein 'main()' hinzufügen, in dem Sie Ihre Klasse verwenden? –

+0

Fertig, danke. – 005197503

Antwort

0

Die Verwendung von goto wird nicht empfohlen und als eine sehr schlechte Praxis sogar für einen Anfänger. Wenn Sie in C++ beginnen, ist das Best-Practice-Verfahren der beste Einstieg. Die goto wird in C/C++ nur aus Gründen der Abwärtskompatibilität unterstützt.

Für Ihr Problem versuchen, eine Schleife anstelle von goto zu verwenden.

int main() 
{ 
    //Condition to show the menu or exit 
    bool bContinue = true; 
    producto cosa; 

    do{ 

     int menu; 
     cout << "************************" << endl; 
     cout << "1.- Registrar Producto" << endl; 
     cout << "2.- Ver Producto" << endl; 
     cout << "3.- Exit" << endl; 
     cout << "************************" << endl; 
     cin >> menu; 
     cin.ignore(); 

     switch (menu) 
     { 
     case 1: 
      cout << "INGRESE PRODUCTO NUEVO:\nPresione enter para continuar" << endl; 
      cin.ignore(); 
      system("cls"); 
      cosa.registrar(); 
      cin.ignore(); 
      break; 
     case 2: 
      cosa.ver(); 
      cout << "Presione enter para regresar al menu principal." << endl; 
      cin.ignore(); 
      break; 
     case 3: 
      bContinue = false; 
      break; 
     } 

    }while(bContinue) 
    return 0; 
} 

Auf diese Weise wird Ihr Problem behoben und Sie lernen einen besseren Weg, es zu tun.

+0

Danke, ich war keine Schleife, weil wir annehmen, dass wir sie noch nicht benutzen können. – 005197503