DIe zusammen zähl funktion geht nicht !

Jackiechan

Grünschnabel
Hallo Leute !

Hab leider in der Suche nichts dazu gefunden ich habe folgendes Problem :

Wenn ich den Code ausführe dann, kann ich immer nur die erste Zahl eingeben und dann beendet sich das programm, ich möchte aber das ich zwei zahlen eingeben kann , und diese dann zusammen zählt:

Hier der Code:

#include <iostream>
#include <string>
#include <cstdlib>
#include <algorithm>


int main()

{

char Zahl1[10];
char Zahl2[10];

int a;
a = atoi(Zahl1);
int b;
b = atoi(Zahl2);

std::cout << "die erste zahl : " << std::flush;
std::cin.get(Zahl1, 10);

std::cout << "die zweite zahl : " << std::flush;
std::cin.get(Zahl2, 10);

std::cout << "Ergebniss " << a + b << std::endl;

}
 
Zur Problemlösung:

1. Bitte gib dir etwas mehr Mühe beim Posten, speziell Threadtitel.

2. Verwende Code-Tags (s.u.).

3. Probier es mal so herum:

Code:
  {
    using namespace std;

    char Zahl1[10];
    char Zahl2[10];

    cout << "die erste zahl : ";
    cin  >> Zahl1;

    cout << "die zweite zahl : ";
    cin  >> Zahl2;
    
    int a = atoi(Zahl1);
    int b = atoi(Zahl2);

    cout << "Ergebnis " << a + b << endl; 

    return 0;
  }
Falls das immer noch zu früh aussteigt, setz die Zeile for(;;); vor die Zeile mit dem return (Das Programm muss dann allerdings wegen Endlosschleife mit Gewalt beendet werden).
 

Anhänge

  • _codetags.gif
    _codetags.gif
    7,5 KB · Aufrufe: 69
Warum erst ein char-Array einlesen und dann atoi() anwenden? cin kann doch auch direkt in einen Integer übergeben,oder?
 
Vernünftiger Einwand. Ich wollte den Code nicht total verändern, weil Jackiechan ja gerade lernt. Besser ist natürlich:
Code:
  {
    using namespace std;

    int a = 0;
    int b = 0;

    cout << "die erste zahl : ";
    cin  >> a;

    cout << "die zweite zahl : ";
    cin  >> b;
    
    cout << "Ergebnis " << a + b << endl; 

    return 0;
  }
 
Hi Kachelator

Wie ich von deinem vorherigen Posting gesehen habe , und diese auch gleich ausprobiert habe , bin ich schon etwas überascht , das es auch so einfach geht.

Warum wird das in meinem Einführungs Buch aber dann so umfang reich beschrieben , wennst doch auch einfach geht

Code:
using namespace std;
Was bedeutet dieser Code

Mfg
Jackie
 
Warum wird das in meinem Einführungs Buch aber dann so umfang reich beschrieben , wennst doch auch einfach geht
Keine Ahnung. Vielleicht hat der Autor einen didaktischen Ansatz, der sich unserem Wahrnehmungshorizont entzieht. Vielleicht ist auch das Buch schlecht. Oder du hast was falsch verstanden.

Was bedeutet dieser Code
std ist der Namespace, in dem cin und cout existieren. Stell dir vor, das wäre so etwas wie eine Telefonvorwahl. In deinem Code hast du immer explizit den Namespace genannt (std::cout ). In meinem Beispiel habe ich dem Compiler durch using namespace std; gesagt, dass er im std-Namespace nachschauen soll, wenn er einen Bezeichner nicht findet (wie. z.B. cout ).
 
Danke Kachelator

Jetzt verstehe ich das ganze auch , hätes du vieleicht einen Tip oder ein Tutorial , wo ich am besten die grundlagen von C++ lernen kann , was nicht so unverständlich wie meins ist .

Wenn es jemanden interressiert habe meine Lern Hilfen von :
www.highscore.de

Mfg
Jackie
 
Ich würde die Programmieren in C++: Einführung auf der von dir erwähnten Seite mal durcharbeiten. Macht keinen schlechten Eindruck. Übrigens habe ich das Beispiel mit dem atoi() nicht gefunden.

Hier im Forum gibt es auch noch einen angetackerten Thread, der eine Reihe Tutorials auflistet. Vielleicht ist ja da wa dbei.
 
Das mit dem atoi() ist im Kapitel 4 : Kontrollfunktionen ,
4.1 Verzweigungen ,gleich der erste Source Code.

Bin gerade dabei , das durch zumachen, deshalb hab ich ja dort denn fehler gehabt , weil es auf der seite auch so falsch steht .

Mfg
Jackie
 
Ja, okay. Ich habe mir die Sourcen gesaugt (Option unter dem Schnipsel), und die enthält noch mehr Fehler als der Schnipsel:
Code:
#include <iostream> 

int main() 
{ 
  char Buffer[20]; 

  std::cout << "Geben Sie eine Zahl ein: " << std::flush; 
  std::cin.get(Buffer, sizeof(Buffer)); 
  if (std::atoi(Buffer) < 100) 
  { 
    std::cout << "Sie haben eine Zahl kleiner als 100 eingegeben." << std::endl; 
  } 
}
Ein include fehlt, das return fehl... es lässt sich so nicht kompilieren! Das ist echt ziemlich peinlich. Übrigens ist das nicht das einzige BEispiel, wo das return von int main() fehlt. Gerade in Anfänger-(Online-)-Büchern darf sowas nicht passieren. Es gibt eine Menge Bücher, die ich sehr gut finde, obwohl sie Fehler (und normalerweise auch eine Fehlerliste) enthalten, aber das sind dann Werke für Fortgeschrittene, die zumindest die Möglichkeit haben, zu erkennen, dass da eventuell ein Fehler vorliegt und ihn eventuell selbst beheben können.

Du solltest dir vielleicht wirklich was anderes zum lernen suchen. Leider kann ich da nichts empfehlen.
 
Zurück