Unerwateter Absturtz



  • Hi Leute

    #include <iostream>
    #include <stdio.h>
    #include <string>
    using namespace std;
    # include <windows.h>
    
    int main()
    {
    string f;
    cin>>f;
    cout<<f<<endl;
    cin>>f;
    }
    

    Ich habe ein Problem in einem meier anderen Projekte bricht mein string immer ab wenn ich ein Leer zeichen eingebe.
    also habe ich das problem einfach mal auf die ein und die anschliesende Ausgabe reduziert.
    Aber es stürtzt trozdem immer ab wenn ich zumbeispiel die worte "Hallo Welt" eingebe wist ihr was ich da tun kann ?



  • 1. was ist ein Absturtz?
    2. probiers mal mit

    getline(cin, stringname)
    

    statt cin



  • Ich hab

    getline(cin, string);
    

    verwendet nur das Problem ist wenn ich vor dem String noch eine andere Variabele mit cin einlese überspringt er das Einlesen des Strings komplett(arbeite mit einem goto nach dem Ersten durchlauf wird das string einlesen komplett ignoriert da es immer ein vorhergegangenes Einlesen gibt) kann man das irgendwie aushebeln.



  • hmm... dumme Frage:
    Wenn du das 2. mal "Hello World" ein gibst, ist dann das Konsolenfensterchen vielleicht weg?



  • Vorden schrieb:

    verwendet nur das Problem ist wenn ich vor dem String noch eine andere Variabele mit cin einlese überspringt er das Einlesen des Strings komplett

    Sprich mal ein vereinfachtes Bsp dafür

    int main(){
        string eingabe;
        int zahl;
        cin>>zahl;
        getline(cin, eingabe);}
    

    Hierbei wird die zweite Eingabe übersprungen.

    int main(){
        string eingabe;
        int zahl;
        cin>>zahl;
        cin.ignore(1);
        getline(cin, eingabe);}
    

    Bei diesem Bsp aber nicht, weil die nach der ersten Eingabe gedrückte Enter-Taste per cin.ignore(1) abgefangen wurde und dadurch nicht als zweite Eingabe benutzt wird.


Anmelden zum Antworten