C++ - Velikost proměnné – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C++ - Velikost proměnné – C / C++ – Fórum – Programujte.comC++ - Velikost proměnné – C / C++ – Fórum – Programujte.com

 

Cooda
~ Anonymní uživatel
7 příspěvků
21. 8. 2013   #1
-
0
-

Zdravím,

mam dotaz ohledně zvolení velikosti arraye. Třeba u funkce getline jsem se zasekl stím že nevím jaká můžu být maximální délka řádku ( čtu sní řádky ze souboru), možná by se to dalo řešit failbitem, ale o to tak moc nejde. 

Spíš by mě zajímalo proč ve většině příkladů nacházím velikost char arraye o 256 znacích, nebo také 255 to si ale zdůvodním s 255 + nulový znak. Co kdybych zvolil třeba velikost 999 ?

Může mě někdo vysvětlit zvolení velikosti arraye ? Děkuji.... 

Nahlásit jako SPAM
IP: 212.96.160.–
Kowalsky950
Stálý člen
21. 8. 2013   #2
-
0
-

#1 Cooda
255 je takový nepsaný zvyk. Určitě tam jsou nějaké historické podklady k tomu, dnes je to částečně způsobeno tím že některé programy neumí s delším jak 255 znakovým polem pracovat. Jestli se nemýlím je to například Access.

Velikost si můžeš zvolit jakou chceš, ale bez v ůvahu že za každého nového člena máš další bajt v paměti.

Co se ukončení týče, getline by se měl zaseknkout u znaku '\0', tedy ukončující znak a dál by číst neměl. Stejně tak cout. Tudíž vytvoříš-li pole, poté jej celé naplníš znakem '\0' a teprve poté s ním budeš pracovat, výstup by se měl zastavit u konce.

Pokud chceš vytvořit pole, u kterého nevíš jeho velikost a nechceš plýtvat místem, slouží k tomu kontainery. Ale to je trošku pokročilejší technika ke které jsem se ještě nedostal ani já :D (no spíš jsem byl ještě línej si o tom něco načíst :D) takže s tím ti neporadím. Ale jak říkám je to pokročilejší a pokud tady řešíš velikost pole, tak nemyslím že by sis měl troufat na toto.

Jinak ještě poznámka, pokud chceš zjistit, jestli něco jde nebo nejde, tak to prostě napiš, zkompiluj a zkus ;-) Chybami se člověk učí :) Přinejhorším se dostaneš na BlueScreen ;-) :D

Nahlásit jako SPAM
IP: 90.176.114.–
TheOndrap+2
Super člen
21. 8. 2013   #3
-
0
-

#1 Cooda
Délka pole není v C/C++ limitována, max pamětí.

Maximální délka řádku je taky dost abstraktní pojem, řádek je po sobě jdoucí posloupnost znaků končící (podle typu OS) znaky <CR><LF>. Tzn. jakmile ty zavoláš getline tak se přečte tolik znaků, kolik je možné. A buď se to do toho pole vejde, nebo se to tam nevejde, to je tvoje věc jak velký si ho vytvořil.

Nahlásit jako SPAM
IP: 88.102.250.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
yetty
~ Redaktor
+5
Super člen
21. 8. 2013   #4
-
0
-

256 není úplně nahodilé číslo. Je to 2^8 a lépe se to skládá do paměti.

Nahlásit jako SPAM
IP: 46.23.51.–
TheOndrap+2
Super člen
21. 8. 2013   #5
-
0
-

#4 yetty
Ty si přišel z práce/do práce a vzal jsi všechny vlákna najdnou, ne? :D

Nahlásit jako SPAM
IP: 88.102.250.–
ZČU v Plzni je mnohem víc, než jenom právnická fakulta !!
Fakulta aplikovaných věd www.fav.zcu.cz
"Když nedokážete říci věci jednoduše, pak jim dostatečně nerozumíte"
yetty
~ Redaktor
+5
Super člen
21. 8. 2013   #6
-
0
-

#5 TheOndrap
Tak trochu :)

Nahlásit jako SPAM
IP: 46.23.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 17 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý