Article View: pl.comp.lang.c
Article #309989Re: Piaskownica
From: M.M.
Date: Thu, 16 Jan 2020 17:06
Date: Thu, 16 Jan 2020 17:06
142 lines
3869 bytes
3869 bytes
On Thursday, January 16, 2020 at 1:01:09 PM UTC+1, herjohn wrote:
> W dniu 2019-12-12 o 23:54, M.M. pisze:
> > Nie przewijajcie na dół, tam jest rozwiązanie:
> >
> > Zawsze byłem słaby z biblioteki standardowej w C++, programowałem w innych.
> > Nie mogłem znaleźć błędu w poniższych kilku wierszach, pewnie wy znajdziecie.
> > Jako pierwszy wiersz na standardowe wejście podajemy liczby np. 1 i 2. Jako
> > drugi podajemy np.: 3 i 4. Program dwa razy robi to samo, wczytuje wiersz,
> > tworzy strumień tekstowy i ze strumienia odczytuje do zmiennych x i y. Choć
> > dwa razy robi to samo, to drugi raz nie działa prawidłowo. Straciłem z
> > godzinę czasu żeby to wygrzebać z większego programu, zdiagnozować i poprawić :)
> > Biblioteki trzeba znać :/
> >
> > #include <iostream>
> > #include <sstream>
> >
> > int main() {
> > std::string str;
> > std::istringstream ss;
> > double x, y;
> >
> > std::getline( std::cin , str );
> > std::cout << "String: '" << str << "'" << std::endl;
> > ss.str( str );
> > ss >> x >> y;
> > std::cout << x << std::endl;
> > std::cout << y << std::endl;
> >
> > std::getline( std::cin , str );
> > std::cout << "String: '" << str << "'" << std::endl;
> > ss.str( str );
> > ss >> x >> y;
> > std::cout << x << std::endl;
> > std::cout << y << std::endl;
> >
> > return 0;
> > }
> >
> >
> > Pozdrawiam
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > ------------------------------------------------------------
> > Odpowiedź:
> >
> > ss.str( str );
> > nie resetuje pozycji, trzeba wywołać jeszcze:
> > ss.seekg(0);
> >
>
>
> a nie chodzi o to, że po pierwszej operacji
> ss >> x >> y;
> zostają ustawione bity eof, fail i bad, które trzeba wyzerować
> instrukcją ss.clear()?
Prawdę powiedziawszy nie wiem, ale po seekg działa bez zarzutu.
Pozdrawiam
P.S.
Przyjąłem sobie za punkt honoru pewne autonomiczne fragmenty kodu
(coś ala biblioteki) pisać tylko z użyciem biblioteki standardowej i
żałuję tego. Na co dzień piszę w QT, wygoda jaką dostarcza QT
na każdym kroku jest nieoceniona.
Technical Details
Message-ID:
<c3a1e800-22c2-4acd-ae08-4294996e46c3@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!g89no3317037qtd.0!news-out.google.com!w29ni1399qtc.0!nntp.google.com!g89no3317022qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mailReferences:
<4596f312-bb20-4ac0-ac42-015128f3dfdd@googlegroups.com> <qvpja2$6vr$1@gioia.aioe.org>Show Full Headers
Complete Article Headers
X-Received: by 2002:a05:6214:6f0:: with SMTP id bk16mr3608594qvb.23.1579194402819; Thu, 16 Jan 2020 09:06:42 -0800 (PST) X-Received: by 2002:a81:13cd:: with SMTP id 196mr22895676ywt.43.1579194402593; Thu, 16 Jan 2020 09:06:42 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!g89no3317037qtd.0!news-out.google.com!w29ni1399qtc.0!nntp.google.com!g89no3317022qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Thu, 16 Jan 2020 09:06:42 -0800 (PST) In-Reply-To: <qvpja2$6vr$1@gioia.aioe.org> Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=159.205.34.176; posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj NNTP-Posting-Host: 159.205.34.176 References: <4596f312-bb20-4ac0-ac42-015128f3dfdd@googlegroups.com> <qvpja2$6vr$1@gioia.aioe.org> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <c3a1e800-22c2-4acd-ae08-4294996e46c3@googlegroups.com> Subject: Re: Piaskownica From: "M.M." <mmarszik@gmail.com> Injection-Date: Thu, 16 Jan 2020 17:06:42 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit