abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 0
včera 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 16
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 8
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 2
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 0
2.12. 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
1.12. 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
1.12. 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 767 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: istringstream >> int

31.7.2012 22:06 rastos | skóre: 60 | blog: rastos
istringstream >> int
Přečteno: 244×
Tento program
#include <sstream>
#include <iostream>

int main(int argc,char *argv[])
{
        std::istringstream strm("foo");
        int n = -1;
        strm >> n;
        std::cout << "n is " << n <<std::endl;
        return 0;
}
Vypíše

n is 0

Je to bug v stdc++?

Odpovědi

1.8.2012 08:39 jekub
Rozbalit Rozbalit vše Re: istringstream >> int
Mám teď jenom VC6 a VC10. Obojí -1.

Co vrací
strm.fail()
1.8.2012 09:06 jekub
Rozbalit Rozbalit vše Re: istringstream >> int
c++ (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
také -1
1.8.2012 15:32 rastos | skóre: 60 | blog: rastos
Rozbalit Rozbalit vše Re: istringstream >> int
Ja som na to narazil na Slackware-i s gcc-4.7.1 cxxlibs-6.0.14.

Na inom stroji s gentoo a gcc-4.4.3-r2 sa to chová správne.
1.8.2012 15:26 rastos | skóre: 60 | blog: rastos
Rozbalit Rozbalit vše Re: istringstream >> int
strm.fail() vrati 1
1.8.2012 10:07 Marek
Rozbalit Rozbalit vše Re: istringstream >> int
Pravdebodobne je to feature, ze aj napriek fail() sa meni hodnota nacitavanej premennej.

V G++ 4.6.3 (Ubuntu) vypise "n is 0". Vzdy treba testovat "fail(), resp. good()" bity tychto operacii.

Program po uprave ide do else sekcie.
#include <sstream>
#include <iostream>
 
int main(int argc,char *argv[])
{
        std::istringstream strm("foo");
        int n = -1;
        strm >> n;
        if (!strm.fail()) {
                std::cout << "n is " << n <<std::endl;
        }
        else {
                std::cout << "n does not represent a number."  <<std::endl;
        }
        return 0;
}
1.8.2012 15:46 rastos | skóre: 60 | blog: rastos
Rozbalit Rozbalit vše Re: istringstream >> int
Jeden problém je, že ten problém nie je v kóde mojom, ale ḱóde enblend-u. Druhý problém je, že sa to IMHO nechová správne, hoci sa to kedysi správne chovalo. A malo by sa to v stdc++ opraviť.
1.8.2012 15:56 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: istringstream >> int
Co konkrétně vám připadá nesprávné?
1.8.2012 16:25 l4m4
Rozbalit Rozbalit vše Re: istringstream >> int
Standard lze číst tak, že v případě úspěchu se do proměnné přiřadí hodnota, nebo tak, že do proměnné se přiřadí hodnota v případě úspěchu. Což jsou obrácené implikace. Druhá by znamenala, že přiřazení v případě neúspěchu je v rozporu se standardem. První o této situaci neříká nic, tudíž by to byla věc implementace. IANAL.
1.8.2012 16:34 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: istringstream >> int
Já tam nevidím nic, co by zaručovalo zachování hodnoty, pokud dojde k chybě. Navíc pokud byste chtěl tu implikaci obracet, znamenalo by to, že ani při úspěchu se hodnota přiřadit nemusí, což je nesmysl. To už byste to musel brát jako ekvivalenci.
1.8.2012 16:48 kuka
Rozbalit Rozbalit vše Re: istringstream >> int
Tak tim je jiste mysleno, ze se tam priradi spravna hodnota, ne jestli se tam vubec neco priradi nebo ze tam ma zustat puvodni hodnota. Pokud neni jednoznacne popsano, co se stane pri chybe, tak je treba se na hodnotu vzdy divat jako na nedefinovanou a to nejenom v tomto pripade.
1.8.2012 17:29 l4m4
Rozbalit Rozbalit vše Re: istringstream >> int
Překvapivě -- pro někoho -- existují i rozhraní s definovaným chováním při chybě. Ale asi to nebude případ iostreamů v C++...
1.8.2012 17:40 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: istringstream >> int
Ne to překvapivé není. Ale pro řadu lidí je bohužel překvapivé, že když specifikace výslovně nevyžaduje, aby při chybě hodnota byla zachována, tak nelze spoléhat na to, že se nezmění.
1.8.2012 18:56 rastos | skóre: 60 | blog: rastos
Rozbalit Rozbalit vše Re: istringstream >> int
No ... svojím spôsobom máš pravdu. Ale pripadá mi to, ako keď sa právnik vykrúca.

Ak mám int a hovorím, že chcem do neho niečo prečítať, tak buď do neho niečo prečítam alebo nie. A keď do neho neprečítam, tak to znamená, že som do neho nič nedal a neznamená to, že som do neho dal nulu.
1.8.2012 19:23 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: istringstream >> int
Vůbec ne. Uvědomte si, že v praxi může být implementace, která se bude snažit zachovávat hodnotu, méně efektivní než taková, která se na to vykašle. Pak je nesmysl zbytečně zneefektivňovat programy něčím, co specifikace nevyžaduje a tudíž na to program stejně nesmí spoléhat.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.