C++ Eingabestrom

walljumper

Lieutnant
Mitglied seit
25.01.2005
Beiträge
84
Renomée
0
Hab ein Problem mit dem Eingabestrom "cin" und zwar das ja das letzte zeichen gespeichert wird, das in meinem Programm <enter> ist und somit alle folgene Eingaben beendet.

Wie verhindere ich das?
 
Ich versuche meine Antwort mal kurz und präzise zu fassen: Häh???

Poste am besten mal den Source, oder erklär es richtig. Übrigens heist das Dingens Stream, Programmiergeschwafel lässt man besser englisch (weil nach der Übersetzung keiner mehr was damit anfangen kann - hier kam mal die Frage, was eine deutsche Fehlermeldung vom gcc denn nun eigentlich bedeutet).
 
hm ok englisch :)


Code:
#include<iostream>
#include<iomanip>

using namespace std;

int main()
{
  int i,n,l;
  double x= 0.123456;
  double y= 23.987;
  double z= -123.456;
  double art,stcz,preis,zahl;
  char s[500];

  cout <<"\n\n";


  cout <<setw(15)<<left<<x;                            // -------------
  cout <<fixed<<setprecision(2)<<setw(12)<<y;          //  Aufagbe 1
  cout <<scientific<<setprecision(4)<<setw(10)<<z;     // -------------


  /*--------------------------  Aufgabe 2 -----------------------------*/

  cout << "Aufgabe 2\n";                                // Eingabeteil
  cout << "Geben Sie die Artikel Nr. ein: "<<endl;      // -----------
  cin >>art;
                                              // -----------
  cout << "Geben Sie die Stueckzahl an: "<<endl;        // -----------
  cin >>stcz;
                                             // -----------
  cout << "Geben Sie den Stueckpreis an: "<<endl;       // -----------
  cin >>preis;
                                            // Eingabeteil ende





  cout  <<setw(20)<<"Artikelnummer"
        <<setw(20)<<"Stueckzahl"                           //Ausgabeteil
        <<setw(20)<<"Stueckpreis"<<endl
        <<setw(20)<<art
        <<setw(20)<<stcz
        <<setw(20)<<preis;                                 //Augabe ende



  /*--------------------------- Aufagbe 3 -----------------------------*/
  cout << "Aufgabe 3\n";
  cout << "Geben Sie eine positive Ganzzahl, die nicht groeßer als "
   <<sizeof(int)<< " ist, ein: ";
  cin >>zahl;                                     // Eingabe

  cout<<zahl<<endl<<hex<<zahl<<endl<<oct<<zahl;     // Ausgabe



  /*--------------------------- Aufgabe 4 -----------------------------*/
  cout << "Aufgabe 4\n";

  for(i=1;i<6;i++)                           // Tabelle wird per Schleife
        {                                    // und Tab erstellt
        for(n=1;n<11;n++)
                cout<< n*i<<"\t";
        cout<<endl;
        }



  /*--------------------------- Aufgabe 5 ------------------------------*/

  cout <<"Aufgabe 5\n";

  cout <<"Geben Sie einen Satz ein:";
  cin >> s;

  while(i<500)
        {
        cout <<s[i];

        if(s[i] == ' ')
                cout <<"\t";

        if(s[i] == '\0')
                break;

        i++;
        }

    getchar();
  /*--------------------------- Programm ende -----------------------------*/







        getchar();
        getchar();
        return 0;
}

Sind ein paar Schulaufgaben in einem Programm.
Das Problem ist das das Programm nach der ersten Eingabe durchläuft und alle weiteren Eingaben einfach Überspringt.
So weit ich weis liegt das daran das, dass zuletzt eingegebene Zeichen nicht gelöscht wird und da das <Enter> ist werden alle weiteren eingaben beendet. Aber wie löse ich das Problem?
 
Zurück
Oben Unten