Zeichenketten werden nur bis zum Leerzeichen gelesen
-
Ja ich weiß. Ich hab das Programm so geschrieben, dass das erste Zeichen des arrays bestimmt wie der rest gelesen wird. Is alles n bisschen kompliziert und klingt furchtbar unsauber, aber es is an sich ne ziemlich kurze Lösung.
Danke der Quelltext funktioniert perfekt. Hab das auch schon mal so gemacht, aber ich hatte es vergessen weil ich lange nciht mehr programmiert habe.
-
CStoll ! CStoll !
*anfeuer*
Los die 104 kriegst heut noch voll !
-
proggingm@nia(unlogged) schrieb:
CStoll ! CStoll !
*anfeuer*Ich wußte gar nicht, daß ich schon einen eigenen Fanclub habe
Los die 104 kriegst heut noch voll !
Wozu? Ich hab' keine Lust, jetzt Beiträge zu löschen, um die 104 zu treffen
-
Kann es sein, dass getline kein BlockingCall ist? Wenn ich das isoliert in ein Programm einbaue klappt das aber im richtigen Programm nich
Hier mal der Programmabschnitt:
char ztw[511]; cin.getline(ztw, 511, '\n'); strcat(eingabe, ztw); cout<<eingabe<<endl; system("Pause");
-
Was meinst du mit "klappt nicht"? (und hast du genug Platz in 'eingabe' vorgesehen?)
-
"eingabe" ist ein char array, dass 512 zeichen groß is und das erste zeichen ist besetzt. Wenn das Programm gestartet wird wartet es nicht die Eingabe ab, sondern gibt direkt "eingabe" aus. Wenn an der gleichen Stelle "cin>>" steht wartet es die Eingabe ab.
-
Vermutlich steht von einer vorherigen Eingabe noch der Rest im Eingabepuffer - den mußt du erst einmal entsorgen (mit ignore()), sonst wird der von getline() gelesen.
-
Der Buffer wird das erste Mal verwendet. Ich habs aber trotzdem mal ausprobiert und es tritt immer noch das gleiche Problem auf.
-
Sicher? Du verwendest cin nirgends sonst in deinem Programm?
-
Hm habs noch mach gemacht mit ignore, jetzt gehts. Lag wohl an einem Compiler-Fehler vorhin. Danke