Ausgabe und Eingabe mit Übergabe an Variablen aller Art



  • Hallo alle zusammen,

    ich bin ein kompletter Frischling in C++ und habe ein kleine Frage:

    Ich habe ein kleines Exponentenprogramm geschrieben, das zuerst nicht
    richtig funktionieren wollte und habe es dann umgeschrieben. Jetzt
    sieht es folgendermassen aus:

    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>
    #include <cmath>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
      double DBL_startwert, DBL_laufzeit, DBL_faktor, DBL_endergebnis;
    
      cout<<"Startwert: ";
      cin>>DBL_startwert;
      cout<<"Laufzeit: ";
      cin>>DBL_laufzeit;
      cout<<"Faktor (in Prozent!): ";
      cin>>DBL_faktor;
    
      DBL_faktor=(DBL_faktor/100);
      DBL_endergebnis=DBL_startwert*(pow(DBL_faktor, DBL_laufzeit));
    
      cout<<DBL_endergebnis;
      cout<<"\n";  
    
      system("PAUSE");	
      return 0;
    }
    

    Nun, ich habe immer noch mühe irgendwelche Zeichenketten (String, Chars) zu übernehmen.
    Kann mir jemand weiterhelfen?

    Und mit scanf und printf kann ich keine Variablen ausgeben/eingeben. Wieso?

    Danke für eure Antworten! 🙂

    MFG
    ein weiterer Anfänger... 🙄



  • Wo liegt jetzt dein Problem?



  • DarthZiu schrieb:

    Wo liegt jetzt dein Problem?

    hm? Unten steht's doch. 😉



  • hi,
    meinst du über die Tastatur??? Dann würd ich

    getline(cin, Ziel); //???
    

    nehmen, dass ist in der

    #include <iostream>
    using namespace std;
    

    Wenn nicht, drück dich bitte präziser aus ?!

    Gruß eXitus



  • MHK schrieb:

    Nun, ich habe immer noch mühe irgendwelche Zeichenketten (String, Chars) zu übernehmen.
    Kann mir jemand weiterhelfen?
    Und mit scanf und printf kann ich keine Variablen ausgeben/eingeben. Wieso?

    Mit dieser "Fehlerbeschreibung" weiß ich nicht, wo dein Prob liegt.

    Was genau meinst du mit "ich habe immer noch mühe irgendwelche Zeichenketten (String, Chars) zu übernehmen."?

    Und wieso "mit scanf und printf kann ich keine Variablen ausgeben/eingeben."?



  • Achja, und bitte nimm das System("Pause") raus, mach lieber ein

    cin.get() //oder
    getchar();
    

    , weil das Programm sonst nicht ganz plattform unabhängig ist, bei erneuten kompilieren auf einem anderen System...

    Gruß eXitus



  • @Exitus
    Danke vielmals!
    Ich werde das bei Gelegenheit ausprobieren!
    Kennst du ein Tutorial dazu? 😃



  • Ok es muss heißen:

    getline (cin /*für Standarteingabe*/, texteingabe);
    

    Aber ich weis bnicht genau in Welchem Header, es gibt nämlich auch noch

    cin.getline(Zeil, Länge);
    

    Suche mal ein paar Seiten, mom, editiwere dann...

    Gruß eXitus

    Ok habe was gefunden:

    Mittels [b]getline(); [/b]kann eine Zeile in eine string-Variable eingelesen werden: 
       [cpp]getline (cin, Zeile);[/cpp]
    Alle Zeichen aus dem Eingabstrom bis zum nächsten Auftreten des Zeilenende-
    Zeichens werden in der string-Variablen Zeile abgelegt, die dabei automatisch
     auf die erforderliche Größe gebracht wird. Das Zeilenende-Zeichen selbst wird
     nicht in der string-Variablen abgelegt.
    
    Soll bis zu einem anderen als dem Zeilenende-Zeichen gelesen werden, so kann 
    dieses als drittes Argument angegeben werden. Folgender Aufruf liest alle 
    Zeichen bis zum nächsten . in die string-Variable Satz: 
       [cpp]getline (cin, Satz, '.');[/cpp]
    
    Wenn der Rest der Eingabe bis zu einem bestimmten Zeichen nicht benötigt wird,
     kann die Element-Funktion ignore (int n=1, char c=EOF) benutzt werden. Es
     werden alle Zeichen bis zum nächsten Auftreten des Zeichens c (und 
    einschließlich dieses Zeichens), maximal aber n Zeichen aus dem Eingabestrom
     entfernt.
    

    Und achja:
    Die Parameter aus int main() kannste entfernen, die sind nur zum einlesen von Kommandozeilenparameter da, und du liest ja anscheinend nix ein 😉

    zum 3.Mal
    gruß eXitus


Anmelden zum Antworten