Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Co je to "atoi"?

Aktivity
Avatar
michal.mataj.jr:30.5.2015 13:27

Čau, hledal jsem na netu co to je atoi, ale nenašel jsem.
Koukal jsem tedy na tento článek
http://www.itnetwork.cz/…-a-parsovani

a v kodu

cout << "Zadejte číslo k zdvojnásobení:" << endl;
string s;
cin >> s;
int a = atoi(s.c_str());
a = a * 2;
cout << a << endl;
_getch();

Nechapu co to je atoi, atof apod. A ještě nevim co znamena atoi(s.c_str());.
Vysvětlíte mi to prosim někdo?
Díky za odpovědi.

 
Odpovědět
30.5.2015 13:27
Avatar
Odpovídá na michal.mataj.jr
Neaktivní uživatel:30.5.2015 13:30

atoi je funkce, která z ANSI C stringu (char*), vyrobí typ int, neboli číslo. Takže pokud máš řetězec "12", pak atoi("12") == 12

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
30.5.2015 13:30
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
michal.mataj.jr:30.5.2015 13:34

Jasně, ale to co je zatim je co?
(s.c_str());

 
Nahoru Odpovědět
30.5.2015 13:34
Avatar
Odpovídá na michal.mataj.jr
Neaktivní uživatel:30.5.2015 14:11

To převede c++ typ string na standartní ANSI C string.

Nahoru Odpovědět
30.5.2015 14:11
Neaktivní uživatelský účet
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na michal.mataj.jr
David Novák:30.5.2015 16:24

http://www.cplusplus.com/…stdlib/atoi/

První odkaz, když dáš do Google "atoi".. Jo a atoi nepoužívej - v C je lepší použít strtol (s atoi nezjistíš, jestli se ti to převedlo bez chyby).. V C++ nevím, co se doporučuje používat.. ;)

Nahoru Odpovědět
30.5.2015 16:24
Chyba je mezi klávesnicí a židlí.
Avatar
Martin Dráb
Tvůrce
Avatar
Odpovídá na David Novák
Martin Dráb:30.5.2015 19:40

Pokud vím, dají se na to použít streamy (nějaké příklady jsou tady - http://www.cplusplus.com/…neral/13135/). Ale podle mě je to otrava na několik řádek. Možná ale nějaká novější verze normy přináší lepší řešení.

Nahoru Odpovědět
30.5.2015 19:40
2 + 2 = 5 for extremely large values of 2
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.