Wczytywanie stringa do wystąpienia znaku

0

Jak wczytać do stringa cały tekst do pierwszego wystąpienia któregoś ze znaków? getline obsługuje tylko jeden znak, a jeśli chciałbym wczytać do pierwszego ' ' lub '\n' ?

0

wystarczy wejsc do dokumentacji

http://www.cplusplus.com/reference/istream/istream/getline/

getline w zupelnosci powinien wystarczyc

0
string read_command () {
	char temp;
	cin>>temp;
	string result = "";
	while (temp != ' ' && temp != '\n') {
		result += temp;
		cin>>temp;
	}
	return result;
}

Napisałem taką funkcję, jednak nie działa ona poprawnie, gdyż znak ' ' nie chce wczytać się do chara(?).
http://ideone.com/e9lpoj

0

@fasadin : nie rozumiem wykorzystania getline w rozwiązaniu problemu. Funkcja wczytuje do znaku podanego jako argument albo do EOF. Nic więcej nie można z tym zrobić imo.

0

http://ideone.com/4mxZTZ

zalezy dokladnie do czego potrzebujesz. jezeli tylko do spacji to uzyj po prostu cin (czyta do pierwszej spacji) jezeli tylko do entera uzyj po prostu getline (czyta do pierwszego entera) jezeli potrzebujesz do czegos specyficznego do sprecyzuj pytanie

0

Chcę wczytywać do pierwszego wystąpienia jednego ze znaków: spacja, enter.

0

ok, juz teraz rozumiem. Wczytaj na poczatku do napotkania \n (powrzucaj to do vectorow) a pozniej ten vector rozdrobnij jezeli wystapi spacja

http://stackoverflow.com/questions/236129/split-a-string-in-c

uzyj tego linka. Nigdy nie potrzebowalem czegos takiego wiec nie wiem czy istnieje sposob zeby zrobic to na raz. Trzeba popatrzec w dokumentacji

0

Tylko, że ten sposób bardzo skomplikuje mi kod, bo chciałbym zatrzymać w strumieniu całą reszte znaków po pierwszym ' ' lub '\n' i wczytać to do czegoś innego. Dlaczego moja funkcja nie chce wczytywać znaków spacji ani enter?

0

nie za bardzo Cie rozumiem, nie wiem co chcesz osiagnac. Moze ktos inny bedzie w stanie Ci pomoc.
Najpierw chciales czytac wszystko do znakow \n i " " a teraz pytasz sie czemu on Ci tego nie wczytuje ;o
chcesz wczytaj znaki to daj getline i daj znak konca pliku, wtedy wczyta Ci wszystko
To ze kod Ci komplikuje? Tez nie rozumiem.

Moze ktos inny bedzie Cie w stanie zrozumiec.

0

użyj cin.get() http://ideone.com/d2u0M2
musisz też obsłużyć przypadek gdy nie będzie co wczytać itp

0

@fasadin : z założenia funkcja wczytuje znaki do napotkania spacji lub entera i dodaje je do string. Ja nie widzę błędu, ale bez wątpienia on jest..

0
anonymous23456 napisał(a):

@fasadin : z założenia funkcja wczytuje znaki do napotkania spacji lub entera i dodaje je do string. Ja nie widzę błędu, ale bez wątpienia on jest..

No tak, ale cin>> omija białe znaki. Dla tego Ci nie działało. Z cin.get() powinno być ok

0

Okej, już wszystko wiem, dzięki ; )

1 użytkowników online, w tym zalogowanych: 0, gości: 1