🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #309989

Re: Piaskownica

#309989
From: M.M.
Date: Thu, 16 Jan 2020 17:06
142 lines
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-mail
References: <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