C++: Einkaufsliste nur noch Ausgabe?
Ich habe ein Programm geschrieben und jetzt muss ich zum Schluss noch die Ausgabe machen, dass mir die Sachen, die ich davor reingeschrieben habe, untereinander angezeigt werden. Doch ich sehe als Buchstabe für Buchstabe.
Hier ist der Code:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
char cEingabe = 'a';
char cBeenden = 'b';
vector<char> vec_Eingabe;
cout << "Geben Sie an was auf die Einkaufsliste kommen soll";
cout << "Wenn sie die Eingabe beenden wollen dann druecken sie 0";
// Eingabe
do {
cin >> cEingabe;
if (cEingabe == '0') {
cout << "Wollen sie die Eingabe Beenden (a)";
cin >> cBeenden;
if (cBeenden != 'a') {
vec_Eingabe.push_back(cEingabe);
}
}
else {
vec_Eingabe.push_back(cEingabe);
}
}
while (cBeenden != 'a');
// DAS IST MEINE AUSGABE DIE NICHT FUNKTIONIERT
for (int i = 0; i < vec_Eingabe.size(); i++) {
cout << vec_Eingabe[i] << endl;
}
system("Pause");
return 0;
}
Was separiert die Elemente der Einkaufsliste, wenn Du sie eingibst?
was meinst du mit separtiert
trennen oder schreibst Du alles direkt aneinander e.g. ApfelTomateHund
Nein ich lasse dazwischen einen Abstand mit Enter
3 Antworten
Du hast 2 Optionen: entweder Du benutzt ein Zeichen um Wörter zu trennen z.B. ';' oder Du liest die Wörter direkt als Strings ein in ein Vektor von Strings. Sonst hast Du keine Möglichkeit die Sachen in der Einkaufsliste zu trennen.
Evtl. hilft Dir das weiter:
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
string item;
vector<string> list;
while(cin >> item && item!="0") list.push_back(item);
for(string element : list) cout << element << endl;
return 0;
}
Du kannst mir gerne schreiben was Du nicht verstehst und ich kann Dir dann evtl. morgen damit weiterhelfen.
Naja, du liest ja auch nur Buchstabe für Buchstabe in dein System ein, und am Ende gibst du alles Buchstabe für Buchstabe wieder aus... Was genau erwartest du denn für eine Ausgabe?!
Dann musst du das 'endl' am Ende deiner Ausgabe wegnehmen, damit du nicht nach jedem Buchstaben automatisch eine neue Zeile erzeugst
hab ich probiert doch es macht trotzdem eine neue Zeile
Naja, du musst ja auch die eingegeben Wörter voneinander trennen^^
Am besten speicherst du deine eingegebenen Wörter in einem String und nicht in einzelnen Chars, machst dir einen Vector von Strings, und am Ende gibst du jeden String (also jedes Wort) in einer neuen Zeile mit endl aus
Nein... Du musst dir irgend ein trennzeichen überlegen mit dem du die Wörter voneinander trennen kannst (zB ein Leerzeichen), und damit separierst du dann deine Ausgabe (du kannst es natürlich auch mit den Chars machen)
danke dir das Problem hierbei ist das ich es nicht verstehe aber danke sehr