C++ - Programm wo un wie für weitere Nutzung ablegen ?



  • Hallo da draußen,
    ich bin der wirklich ganz neue C++ler.Ich habe mir beim Durchsuchen der Foren nach Anworten auf meine Frage echt viel Mühe gegeben. Leider nichts gefunden, vielleicht benutze ich auch das falsche Vokabular?
    Meine Frage:
    Wo und wie, nach welchen Regeln, muß ich ein C++ - Programm ablegen, das ich durch ein anderes C++ - Programm (z. B. innerhalb eines Menüs) starten, ausführen und wieder beenden kann? Vielen herzlichen Dank für DEN Hinweis.
    Es grüßt der CppNovize


  • Mod

    Das ist nicht C++ spezifisch, sondern ist eine Sache deines Systems. Dein Programm muss auf die für dein System übliche Weise installiert werden (oder wenigstens auffindbar sein). Danach kannst du es benutzen wie jedes andere Programm auch (egal in welcher Sprache dieses geschrieben wurde). Also unter anderem auch aus einem anderen Programm heraus.

    Das ist eine sehr allgemeine Beschreibung. Falls du genauere Anweisungen benötigst, musst du uns das Zielsystem nennen.



  • Vielen Dank für die erste Antwort.
    Wahrscheinlich benutze ich doch das falsche Vokabular.
    Hier bitte mein Beispiel.
    Zwei Programme aus einem Tutorial, Forum oder Lehrbücher.
    Ich nutze Windows 7 und Visual C++ 2010 Express
    ---------------------------------------------------------------
    ---------------------------------------------------------------
    Erstes Programm:
    Diese Programm möchte ich so ablegen, dass ich es z.B. mit dem zweiten Programm, siehe weiter unten, über das Menü aufrufen, starten und wieder beenden kann.

    // Kleiner Taschenrechner.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    //

    #include "stdafx.h"
    #include <iostream>
    #include <string>

    using namespace std;

    int _tmain(int argc, _TCHAR* argv[])

    {
    double zahl1, zahl2;
    char op;

    cout << endl << "Ein kleiner Taschenrechner"
    << endl << endl;
    cout << "Gebens Sie ein: Zahl-Operator-Zahl <Return>"
    << endl;
    cout << endl << endl;

    cin >> zahl1 >> op >> zahl2;

    switch (op)
    {
    case '+': cout << "=" <<(zahl1 + zahl2) << endl;
    break;
    case '-': cout << "=" << (zahl1 - zahl2) << endl;
    break;
    case 'X':
    case 'x':
    case '*': cout << "=" << ( zahl1 * zahl2) << endl;
    break;
    case ':':
    case '/': cout << "=" << (zahl1 / zahl2) << endl;
    break;
    default: cout << " Operator nicht bekannt" << endl;
    }

    cout << endl;

    system("PAUSE");
    cin.get();
    return 0;
    }
    -----------------------------------------------------------
    ----------------------------------------------------------
    Zweites Programm:

    // Eine kleine Menuefunktion

    #include "stdafx.h"
    #include <iostream>
    #include <conio.h>

    using namespace std;

    // Hauptprogramm

    int main ()
    {
    char wiederholung,auswahl;

    do
    {

    cout << " Bitte waehlen Sie aus: " << endl << endl;
    cout << " [1] Taschenrechner " << endl;
    cout << " [9] beenden " << endl << endl;
    cin >> auswahl;
    cout << endl;

    // Überprüfen der User-Eingabe
    switch (auswahl)
    {

    case ('1'):

    {

    cout << "Case 1" << endl;

    }

    break;

    case ('9'):

    {

    cout << "Auf wiedersehen" << endl << endl;
    cout << "Nochmals '9' und 2x Return" << endl;
    cout << "zum Verlassen des Fensters druecken" << endl << endl;

    }

    break;

    default:

    {

    cout <<"Falsche Eingabe" << endl;

    }

    }

    cout << endl;
    cout << "Druecken Sie die Taste 'J' um ins Menue zu kommen" << endl;
    cin >> wiederholung;

    }

    while (wiederholung == 'J' || wiederholung == 'j');

    _getch ();

    return 0;
    }



  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Das Programm kann gefunden werden über
    1. den absoluten Pfad
    2. den relativen Pfad
    3. die passend editierte Path variable o.ä. Systemspezifische sachen



  • Tut mir leid, aber die Antwort hilft mir nicht wirklich.
    Der erste Teil meiner Frage, wo und nach welchen Regeln muß ich das erste Programm (kl. Taschenrechner) ablegen, um es wieder von dem anderen Programm (Menü) aufrufen zu können, bleibt unbeantwortet. Trotzdem vielen Dank!
    Ich glaube, mein Wissen reicht nocht nicht einmal aus, um hier verständliche Fragen zu stellen.



  • (Ich geh mal von windows aus)
    Kompilier deinen Taschenrechner ganz normal. Dann hast du eine ausführbare .exe Datei. (Beispiel taschenrechner.exe)

    Schreib jetzt in deinem zweiten Programm

    system("taschenrechner.exe")
    

    Kompilier das ebenfalls. Dann tust du beide .exe Dateien in ein Verzeichnis - dann sollte mit system("taschenrechner.exe") das zweite aufgerufen werden.
    Bleibt aber noch die Frage, ob du das so machen willst, und ob das überhaupt sinnvoll ist (was ich bezweifel 😉 ).



  • Kleiner Nachtrag: system ist im header cstdlib, also noch

    #include <cstdlib>
    

    um den header einzubinden. Wie alle Befehle aus der std-library liegt es im namespace std, da du aber schon using namespace std machst sollte das schon bekannt sein.



  • Das wäre dann der relative Pfad, denn er ist relativ zum aktuellen Verzeichnis.
    Ein absoluter Pfad wäre zB
    bei Unix: /usr/bin/rechner
    bei Windows: C:\Program Files\rechner\rechner.exe



  • Lasst mich mal die Frage anders formulieren:
    Was muß ich tun, damit ich im zweiten Programm mit Menüpunkt [1] das erste Programm "Kleiner Taschenrechner" starten und wieder beenden kann ?



  • #include "stdafx.h"
    #include <iostream>
    #include <string>
    #include <conio.h>
    
    using namespace std;
    void taschenrechner(); //Wir deklarieren hier die Funktion taschenrechner, damit der compiler den Namen kennt
    
    // Hauptprogramm
    
    int main ()
    {
    char wiederholung,auswahl;
    
    do
    {
    
    cout << " Bitte waehlen Sie aus: " << endl << endl;
    cout << " [1] Taschenrechner " << endl;
    cout << " [9] beenden " << endl << endl;
    cin >> auswahl;
    cout << endl;
    
    // Überprüfen der User-Eingabe
    switch (auswahl)
    {
    
    case ('1'):
    
    {
    
    cout << "Case 1" << endl;
    taschenrechner(); //hier weiß der compiler dass es die Funktion taschenrechner gibt, also geht das. Wie diese Funktion aussieht muss man später, weiter unten noch schreiben
    
    }
    
    break;
    
    case ('9'):
    
    {
    
    cout << "Auf wiedersehen" << endl << endl;
    cout << "Nochmals '9' und 2x Return" << endl;
    cout << "zum Verlassen des Fensters druecken" << endl << endl;
    
    }
    
    break;
    
    default:
    
    {
    
    cout <<"Falsche Eingabe" << endl;
    
    }
    
    }
    
    cout << endl;
    cout << "Druecken Sie die Taste 'J' um ins Menue zu kommen" << endl;
    cin >> wiederholung;
    
    }
    
    while (wiederholung == 'J' || wiederholung == 'j');
    
    _getch ();
    
    return 0;
    }
    
    void taschenrechner() //hier sagt man, wie die Funktion taschenrechner aussieht
    {
    double zahl1, zahl2;
    char op;
    
    cout << endl << "Ein kleiner Taschenrechner"
    << endl << endl;
    cout << "Gebens Sie ein: Zahl-Operator-Zahl <Return>"
    << endl;
    cout << endl << endl;
    
    cin >> zahl1 >> op >> zahl2;
    
    switch (op)
    {
    case '+': cout << "=" <<(zahl1 + zahl2) << endl;
    break;
    case '-': cout << "=" << (zahl1 - zahl2) << endl;
    break;
    case 'X':
    case 'x':
    case '*': cout << "=" << ( zahl1 * zahl2) << endl;
    break;
    case ':':
    case '/': cout << "=" << (zahl1 / zahl2) << endl;
    break;
    default: cout << " Operator nicht bekannt" << endl;
    }
    
    cout << endl;
    
    system("PAUSE");
    cin.get();
    }
    

    (ungetestet, sollte aber gehen)
    Meinst du sowas?



  • Vielen Dank !
    Das wars!
    Jetzt hab ich auch verstanden, dass eine FUNKTION auch ein Programm beinhalten kann.
    Ich habe bisher bei Funktion immer nur an kleine Formeln oder so gedacht.
    Na ja, ich bin eben der CppNovize.
    Nochmals vielen Dank.



  • Unter "Programm" verstehen die meisten eine ausführbare Datei (z.B. mit Doppelklick in Windows), das hat denke ich für Verwirrung gesorgt.


Log in to reply