getline macht probleme

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • getline macht probleme

    hi,

    also bitte nich schlagen wenns das schonmal irgendwo gab, aber das suchen hat mich nicht wirklich weitergebracht, nur auf sachen die nicht funktionieren. also ich wills kurz machen. hier der code der nicht funzt:

    C-Quellcode

    1. #include <iostream>
    2. #include <string>
    3. using namespace std;
    4. int main ()
    5. {
    6. string s;
    7. char ch1 = 'y';
    8. while(ch1 == 'y')
    9. {
    10. cout << "Ihre Eingabe ";
    11. getline(cin,s,'\n');
    12. cout << endl << "Ihre Ausgabe " << s << endl;
    13. cout << "Weiter ?" << endl << "Yes = y, No = n" << endl;
    14. //std::cin.ignore(std::cin.rdbuf()->in_avail());
    15. //fflush(stdin);
    16. cin >> ch1;
    17. }
    18. return 0;
    19. }
    Alles anzeigen


    das problem liegt an der getline funktion. ab dem zweiten schleifendurchlauf will die nicht mehr einlesen. woran könnte das liegen und was mach ich dagegen ?

    p.s.: in der suche hab ich das hier gefunden

    Quellcode

    1. std::cin.ignore(std::cin.rdbuf()->in_avail());

    Quellcode

    1. fflush(stdin);

    beides funzt nich. weiss jemand wie ich die funktion dazu bewege nach jedem schleifendurchlauf erneut einzulesen ?

    gruß

    qualmi
  • nein. den link (hier im forum) kannte ich schon, wollte die c strings umgehen, da sie statisch sind bzw. man vorher eine feste anzahl von stringelementen mit dem char array festlegen muss.

    der andere link war aber gut, danke. hab dann auch gleich dass gefunden, von dem du sagst dass es falsch ist ^^ cplusplus.com/reference/string/getline/

    also wenn ich das richtig verstehe ist das was du meinst eine der c varianten, und dass was ich meine eine der c++ varianten ? und laut dem link kann ich aber irgendwie nichts erkennen. hab doch eigentlich alles richtig gemacht :( und beim ersten schleifendurchlauf liest er ja wie gewollt ein (bis zum delim zeichen), aber ab der zweiten schleife geht garnix mehr.

    edit: die while schleife scheint da irgendwie zu stören...