Oddělovač – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Oddělovač – C / C++ – Fórum – Programujte.comOddělovač – C / C++ – Fórum – Programujte.com

 

Petr
~ Anonymní uživatel
746 příspěvků
7. 11. 2012   #1
-
0
-

Zdravím, jsem začátečník a měl bych dotaz ohledně oddělovače zadání je zadat nějaký čas ve tvaru př: 1:42, pokud by ovšem bylo místo dvojtečky něco jiného vypsalo by to chybu...výstup by měl vypadat asi nějak takto.čas:
Zadejte čas:
10:02
Toto je 602 minut.


Zadejte čas:
10.02
Chyba.

Nahlásit jako SPAM
IP: 2001:718:7:204:400d:849f:...–
vitamin+8
Grafoman
7. 11. 2012   #2
-
0
-

Pre takto jednoduche veci ti staci scanf() :

unsigned d, h;

if(scanf("%u:%2u", &d, &h) != 2 || h >= 60 )puts("chyba!");
else printf("%ud %uh  = %u h\n", d, h, d*60+h);

Pre zlozitejsie veci regulerne vyrazy, napr regex alebo si implementovat vlastny stavovy automat (nie je to vobec zlozite).

Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Petr
~ Anonymní uživatel
746 příspěvků
8. 11. 2012   #3
-
0
-

Díky moc za radu...ale ještě se bohužel vyskytl jeden problém a to když zadám zaporné číslo př: -12:23 nebo 12:-23...aby to také vypsalo chybu snažil jsem se to vyřešit celý večer ale nepovedlo se :(

Nahlásit jako SPAM
IP: 89.103.102.–
KIIV
~ Moderátor
+43
God of flame
8. 11. 2012   #4
-
0
-

pridas do podminky...  treba  || h<0 || d<0 ...

Nahlásit jako SPAM
IP: 62.216.147.–
Program vždy dělá to co naprogramujete, ne to co chcete...
KIIV
~ Moderátor
+43
God of flame
8. 11. 2012   #5
-
0
-

ale napis sem schvalne co si zkousel.. to me zajima jak premejslej zacatecnici

Nahlásit jako SPAM
IP: 62.216.147.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Petr
~ Anonymní uživatel
746 příspěvků
8. 11. 2012   #6
-
0
-

   


if(scanf("%u:%2u", &d, &h) != 2 || h >= 60 || d<0 || h<0 )puts("chyba!");
else printf("%ud %uh  = %u h\n", d, h, d*60+h);

Tak přesně takhle jsem to tam přidal tu podmínku a když zadám -12:23 tak to hodí nějaké nesmyslné číslo. Nemůže to být tím že je to v unsigned int?

Nahlásit jako SPAM
IP: 89.103.102.–
8. 11. 2012   #7
-
0
-

závorky nepoužíváš? 

if(scanf("%u:%2u", &d, &h) != 2 || (h >= 60) || (d<0) || (h<0) )puts("chyba!");
else printf("%ud %uh  = %u h\n", d, h, d*60+h);

hu

Nahlásit jako SPAM
IP: 195.178.67.–
8. 11. 2012   #8
-
0
-

použití signed int je také na místě když předpokládáš vstup signed (i záporných) čísel.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Petr
~ Anonymní uživatel
746 příspěvků
8. 11. 2012   #9
-
0
-

bohužel ani za použití závorek mi to nefunguje a v úkolu máme použít unsigned int :(

Nahlásit jako SPAM
IP: 89.103.102.–
CZechBoY+4
Věrný člen
8. 11. 2012   #10
-
0
-

#9 Petr
co nefunguje? %u by mělo číst jen unsigned int..

Nahlásit jako SPAM
IP: 213.192.10.–
vitamin
~ Anonymní uživatel
1092 příspěvků
8. 11. 2012   #11
-
0
-

Tak som to vyskusal a %u kludne nacita zaporne cislo, takze premennu 'd' treba nacitat ako signed a treba ju manualne testovat na zapornu hodnotu.

Nahlásit jako SPAM
IP: 195.28.77.–
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, 38 hostů

Podobná vlákna

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ý