003
28.05.2022, 23:56 Uhr
Data2006
|
Vielen Dank,
muß gestehen so ganz habe ich das Programm nicht verstanden. Funktion lese_string verstehe ich noch, aber bei Funktion gib_vector_aus kenne ich das
C++: |
std::cout << "{\n"; std::for_each(names.begin(), names.end(), [](std::string v) {std::cout << v << '\n';});
|
nicht. Also das "{\n"; kenne ich nicht mit dem { Und std::for_each(names.begin... kenne ich auch nicht.
Ich habe jetzt noch mal eine geänderte Version ausprobiert:
C++: |
#include <iostream> #include <vector>
#define ANZAHL 5
int main() { std::vector<std::string> namen; std::string name; int i; for(i=1;i<=ANZAHL;i++) { std::cout << i << ". Name: "; getline(std::cin, name); namen.push_back(name); } for(i=0;i<ANZAHL;i++) std::cout << std::endl << namen[i]; return 0; }
|
Das Programm läuft auch soweit, nur das ich ANZAHL fest auf 5 habe.
Habe Abfrage der Anzahl noch eingebaut. Aber das hier kenne ich auch noch nicht:
Wozu ist das gut?
Ich dachte der Fehler läge an getline, aber dann gesehen es lag am std::cin. Wenn ich die Anzahl einlese, wird dann das Return an getline weitergeleitet? Also ein zusätzliches Zeichen im cin-Eingabepuffer?
Mein Programm sieht jetzt so aus:
C++: |
#include <vector> #include <iostream>
int main() { std::vector<std::string> namen; std::string name; int i, anzahl; std::cout << "Anzahl der Namen: "; std::cin >> anzahl; std::cin.ignore(); for(i=1;i<=anzahl;i++) { std::cout << i << ". Name: "; getline(std::cin, name); namen.push_back(name); } for(i=0;i<anzahl;i++) std::cout << std::endl << namen[i]; return 0; }
|
Mit Variable/Vector name/namen ist mir keine andere Bezeichnung eingefallen. Aber es stimmt, in nem großen Programm kann man name und namen dann schlecht unterscheiden.
Gute Nacht, Data2006 |