Dvakrát getchar() – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Dvakrát getchar() – C / C++ – Fórum – Programujte.comDvakrát getchar() – C / C++ – Fórum – Programujte.com

 

vazbok0
Newbie
7. 11. 2014   #1
-
0
-

Dobrý den, hledal jsem to různě na internetu, ale nikde jsem to nenašel. Je možné použít ve funkci dvakrát getchar? Potřeboval bych totiž spočítat řádky a potom znovu znaky načítat. Děkuji.

Nahlásit jako SPAM
IP: 88.102.87.–
lukas.balaz0
Super člen
7. 11. 2014   #2
-
0
-

#1 vazbok
nechápem, ako to myslíš

Ak použiješ 2 razy getchar(), budú čítať rôzne (zasebou idúce) znaky.

Akože chceš celý vstup načítať 2 razy ? Musíš si ho uložíť do poľa.

Ale napíš ešte presne o čo ti ide aj celé zadanie.

Nahlásit jako SPAM
IP: 80.242.41.–
vazbok0
Newbie
7. 11. 2014   #3
-
0
-

chtěl bych spočítat řídky a podle toho určit rozsah pole..

Nahlásit jako SPAM
IP: 88.102.87.–
Kit+15
Guru
8. 11. 2014   #4
-
0
-

#3 vazbok
Nelze. Použij jazyk, který umí pracovat se seznamem dynamicky vytvářených stringů. Cčko mezi ně nepatří.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:5cbd:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
lukas.balaz0
Super člen
8. 11. 2014   #5
-
0
-

Pole som už veľmi dávno nepoužíval, používam STL vector ako náhradu poľa, ale raz som počul, že nie je dobrý nápad dávať veľkosť poľa nekonštantnú (teda int arr[nejaka_premenna];). Mohli by ste mi to vy lepší potvrdiť alebo vyvrátiť a vysvetliť prečo ?

Nahlásit jako SPAM
IP: 80.242.41.–
Kit+15
Guru
8. 11. 2014   #6
-
0
-

#5 lukas.balaz
"raz som počul" zřejmě pochází od někoho, kdo rád optimalizuje na výkon. Předčasná optimalizace však vede do pekel.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
vazbok
~ Anonymní uživatel
16 příspěvků
8. 11. 2014   #7
-
0
-

Můžu se zeptat, zdali exituje nějaka funkce, jak spočítat řádky bez getcharu?

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 88.102.87.–
Kit+15
Guru
8. 11. 2014   #8
-
0
-

#7 vazbok
Používám příkaz wc. Umí spočítat řádky, slova a bajty v souboru.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
vazbok
~ Anonymní uživatel
16 příspěvků
8. 11. 2014   #9
-
0
-

A zvládne to i z argumentu?

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 88.102.87.–
vitamin+8
Grafoman
8. 11. 2014   #10
-
0
-

#5 lukas.balaz
Problem je ze take pole sa vytvara na stacku a stack je relativne maly (vecsinou radovo v jednotkach MB), ak bude pole dost velke tak nastane stackoverflow...

Nahlásit jako SPAM
IP: 95.105.229.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Kit+15
Guru
8. 11. 2014   #11
-
0
-

#9 vazbok
Z argumentu i z pípy.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:8cc2:...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
vazbok
~ Anonymní uživatel
16 příspěvků
8. 11. 2014   #12
-
0
-

A mužu se zeptat, jak by to vypadalo? Na internetu jsem to nikde nenašel.. Jsem začátečník a docela se v tom ztrácím.

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 88.102.87.–
KIIV
~ Moderátor
+43
God of flame
8. 11. 2014   #13
-
+2
-
Zajímavé

nebylo by jednodussi zjistit rovnou velikost souboru, pak to nacist do jednoho pole naraz a pak si pocitat radky, pak ukazatele na jejich zacatky a misto \r ci \n (podle toho co je driv) hodit proste \0?

mistr rejpal "predcasna optimalizace" nabidne volani subshelu a pocitani radku pres wc ... vzdyt si to vlastne muze nechat naprogramovat nekym jinym ne? hodne se tim toho nauci a tak... nebo v necem jinem.. to se asi zase nauci pracovat s pameti...

Nahlásit jako SPAM
IP: 93.91.152.–
Program vždy dělá to co naprogramujete, ne to co chcete...
voty+1
Návštěvník
10. 11. 2014   #14
-
0
-

Tak pokud to čte přes getchar(), tak to čte z stdinu, takže bude trochu problém zjistit velikost vstupu. Nicméně bude opravdu potřeba to nejprve načíst do nějakého bufferu, v C++ to může být vector nebo string, v čistém C bych použil realloc s nějakým exponenciálním zvětšováním.

Nahlásit jako SPAM
IP: 81.19.38.–
Jednu rozbil a tu druhou ztratil.
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, 23 hostů

Podobná vlákna

Getchar a while — založil Thom

Getchar vs Gets — založil Slimer

C getchar EOF — založil Poki

Getchar() a EOF — založil dreamer

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ý