Szybkie pytanie- z odczytu

0

Jak używając funkcji ignore() z konkretnej lini pliku do odczytu
odczytać znaki pomijając np char ';' ?

0

Metoda ignore służy do pomijania znaków z bufora strumienia, a nie do odczytu.
Do odczytu może służyć np. metoda get i np. instrukcją warunkową sprawdź jaki aktualnie masz znak odczytywany. Zareaguj na niego.
https://en.cppreference.com/w/cpp/io/basic_istream/ignore

1

ignore nie odczytuje znaków pomijając określony znak, lecz ignoruje znaki dopóki nie napotka tego określonego znaku,
mając dane: alamakota, jeżeli wywołasz file.ignore(256, 'm'); a później file >> data; to w data będzie akota.

1

Wzorcowy przykład problemu XY

0
au7h napisał(a):

ignore nie odczytuje znaków pomijając określony znak, lecz ignoruje znaki dopóki nie napotka tego określonego znaku,
mając dane: alamakota, jeżeli wywołasz file.ignore(256, 'm'); a później file >> data; to w data będzie akota.

Przepraszam za złe sformułowanie, ale o to mi chodziło

0
MarekR22 napisał(a):

Wzorcowy przykład problemu XY

To w takim razie, w jaki znany ci sposób można z konkretnej linijki odczytać całą linię np. 1;2;3;4;5 , aby program wyświetlił 1 2 3 4 5 ?

2

Użyć std::getline. Ta funkcja też ma trzeci argument. Ustawiasz tam delim i odczytujesz tylko do określonego znaku.
https://en.cppreference.com/w/cpp/string/basic_string/getline

{
    std::string s;
	while (std::getline(std::cin, s, ';')) {
		std::cout << s << ' ';
	}
}

https://wandbox.org/permlink/fe6cQlXM1Sm8dlfF

0
YooSy napisał(a):

Dziękuję

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