Avatar
michal.mataj.jr:

Č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
Filip Šohajek
Redaktor
Avatar
Odpovídá na michal.mataj.jr
Filip Šohajek:

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í
+1 bodů
Řešení problému
 
Nahoru Odpovědět  +1 30.5.2015 13:30
Avatar
Odpovídá na Filip Šohajek
michal.mataj.jr:

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

 
Nahoru Odpovědět 30.5.2015 13:34
Avatar
Filip Šohajek
Redaktor
Avatar
Odpovídá na michal.mataj.jr
Filip Šohajek:

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

 
Nahoru Odpovědět  +2 30.5.2015 14:11
Avatar
David Novák
Tým ITnetwork
Avatar
Odpovídá na michal.mataj.jr
David Novák:

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
Redaktor
Avatar
Odpovídá na David Novák
Martin Dráb:

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.