Dosenfutter123
Cadet 1st Year
- Registriert
- Mai 2016
- Beiträge
- 14
Guten Morgen,
ich möchte derzeit ein recht einfaches Programm schreiben. In einem Vektor mit Integer-Werten sollen beliebig viele Werte vom Benutzer eingegeben werden können, bis der Benutzer "END" eingibt.
Mein Problem ist, dass ich als Eingabe immer "input"(vom Typ int) in den Vektor pushe. Wäre es möglich, dass ich vor meiner push()-Funktion den Int-wert in einen String zu ändern, wenn keine Zahl eingegeben wird?
Mein Ansatz wäre aufjedenfall mit Templates zu arbeiten, damit zur Laufzeit bestimmt wird, um welchen Typ es sich handelt. Nur widerspricht sich mein Plan, wenn ich input schon als int deklariert habe.
Habe auch schon versucht die Zahlen in einen String-Vektor zu speichern, wo ich aber spätestens auf Probleme stoße, wenn ich mit den Zahlen Berechnungen machen will.
Hier der bisher geschriebene Code:
Mit freundlichen Grüßen
Dosenfutter123
ich möchte derzeit ein recht einfaches Programm schreiben. In einem Vektor mit Integer-Werten sollen beliebig viele Werte vom Benutzer eingegeben werden können, bis der Benutzer "END" eingibt.
Mein Problem ist, dass ich als Eingabe immer "input"(vom Typ int) in den Vektor pushe. Wäre es möglich, dass ich vor meiner push()-Funktion den Int-wert in einen String zu ändern, wenn keine Zahl eingegeben wird?
Mein Ansatz wäre aufjedenfall mit Templates zu arbeiten, damit zur Laufzeit bestimmt wird, um welchen Typ es sich handelt. Nur widerspricht sich mein Plan, wenn ich input schon als int deklariert habe.
Habe auch schon versucht die Zahlen in einen String-Vektor zu speichern, wo ich aber spätestens auf Probleme stoße, wenn ich mit den Zahlen Berechnungen machen will.
Hier der bisher geschriebene Code:
Code:
#include <iostream>
#include <vector>
#include <string>
using std::cout;
using std::cin;
using std::endl;
using std::string;
using std::vector;
vector <int> zahlen;
template <typename T>
int push(T &input)
{
/*if (input == "END") //nicht möglich, da immer int übergeben wird
{
return 1;
}
else*/
zahlen.push_back(input);
}
int main()
{
int input;
while (1)
{
cout << "Bitte Zahl eingeben. Zum Beenden 'END' eingeben: " << endl;
cin >> input;
push(input);
if (push(input) == 1)
break;
}
}
Mit freundlichen Grüßen
Dosenfutter123
Zuletzt bearbeitet: