WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 01.11.2003, 17:50   #1
dh233
Jr. Member
 
Registriert seit: 11.02.2003
Beiträge: 46


Standard c++ getline

Ich habe ein Problem beim Aufruf von getline(). Ich habe eine Variable string s deklariert. Nun möchte ich in diese Variable mit der Funktion eine Zeile einlesen. Dabei habe ich die Funktion wie folgt verwendet: getline(cin, s);

Leider funktioniert das jedoch nicht. Sehe im Moment nicht woran das liegen könnte. Weiß jemand Rat??

lg

dh233
dh233 ist offline   Mit Zitat antworten
Alt 01.11.2003, 18:33   #2
Root
Inventar
 
Registriert seit: 19.12.2000
Ort: Baden
Alter: 48
Beiträge: 1.867


Standard

Der Befehl lautet:

Code:
cin.getline (s, 100);
, wobei 100 die anzahl der zeichen ist, die er einlesen soll. Einfach google fragen
____________________________________

Signatur? Nervt ja nur!
Avatar? Wunderbar!
Root ist offline   Mit Zitat antworten
Alt 01.11.2003, 23:42   #3
Flink
Hero
 
Registriert seit: 29.08.2001
Alter: 57
Beiträge: 904


Flink eine Nachricht über ICQ schicken Flink eine Nachricht über Skype™ schicken
Standard Parameter für Delimiter

Code:
#include <string>
#include <iostream>

using namespace std ;

void main()
{
    string s1;
    cout << "Enter a sentence (use <space> as the delimiter):";
    getline(cin,s1, ' ');
    cout << "You entered: " << s1;
}
Prototype:

template<class _E, class _TYPE, class _A> inline
basic_istream<_E, _TYPE>& getline( basic_istream<_E, _TYPE>& Istream,
basic_string<_E, _TYPE, _A>& Xstring,
const _E _D=_TYPE::newline());

Bei 2 Parametern müsste ein Return als Delimiter standardmäßig verwendet werden.
____________________________________
Bibel
Flink ist offline   Mit Zitat antworten
Alt 02.11.2003, 10:15   #4
dh233
Jr. Member
 
Registriert seit: 11.02.2003
Beiträge: 46


Standard

Erstmal Danke.

@ Root:

Ich hab das mit getline(cin, string) aus einem Buch und es funktioniert auch bei einem ganz einfachem Beispiel.

@ Flink:

Hab ich nicht gekannt. Doch das Problem ist, wenn ich getline() verwende und vorher ein cin >> x habe, dann überspringt das Programm die getline()-Anweisung.
dh233 ist offline   Mit Zitat antworten
Alt 02.11.2003, 12:04   #5
Root
Inventar
 
Registriert seit: 19.12.2000
Ort: Baden
Alter: 48
Beiträge: 1.867


Standard

Aha, man lernt nie aus . Danke für die Info!
____________________________________

Signatur? Nervt ja nur!
Avatar? Wunderbar!
Root ist offline   Mit Zitat antworten
Alt 03.11.2003, 10:38   #6
Flink
Hero
 
Registriert seit: 29.08.2001
Alter: 57
Beiträge: 904


Flink eine Nachricht über ICQ schicken Flink eine Nachricht über Skype™ schicken
Standard

Zitat:
Original geschrieben von dh233
Hab ich nicht gekannt. Doch das Problem ist, wenn ich getline() verwende und vorher ein cin >> x habe, dann überspringt das Programm die getline()-Anweisung.
istream::getline: Bricht bei Auftreten eines NeueZeile-Zeichens ab, wobei das NeueZeile-Zeichen aus dem Stream entfertn, aber nicht in den Zielstring geschrieben wird.

Kann es sein, dass in deinem Fall zwei NeueZeile-Zeichen hintereinander kommen?
Ev. kannst du mit istream::ignore() ein paar Zeichen dazwischen überlesen.
____________________________________
Bibel
Flink ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:01 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag