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í
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 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  +2 30.5.2015 14:11
Neaktivní uživatelský účet
Avatar
David Novák
Redaktor
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
Redaktor
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.