abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 04:00 | Komunita

S ukončením podpory Windows 7 spustila Nadace pro svobodný software (FSF) kampaň Upcycle Windows 7 s peticí žádající Microsoft, aby zveřejnil zdrojové kódy tohoto již nepodporovaného operačního systému pod svobodnou licencí. S uvedením Windows 7 v roce 2009 byla spuštěna kampaň Windows 7 Sins.

Ladislav Hagara | Komentářů: 17
dnes 03:00 | Komunita

Sedmý ročník největší české konference o redakčním systému WordPress WordCamp Praha 2020 se uskuteční v sobotu 29. února v pražském Cubex Centru na Pankráci. Na účastníky letos čekají tři tracky přednášek českých i zahraničních řečníků, několik workshopů, případových studií a samozřejmě i Happiness bar, kam se můžete přijít poradit s odborníky. Je to také ideální příležitost potkat stovky dalších WordPress nadšenců i profesionálů.

… více »
smíťa | Komentářů: 0
dnes 02:00 | IT novinky

Společnost Proton Technologies stojící za virtuální privátní sítí ProtonVPN otevřela všechny aplikace ProtonVPN pod licenci GPLv3. Současně oznámila, že tyto aplikace prošly bezpečnostním auditem. Také díky spolupráci s organizací Mozilla.

Fair | Komentářů: 0
včera 04:00 | Komunita

Na Youtube byl zveřejněn videozáznam jednání odvolacího soudu ve sporu Grsecurity (Open Source Security) vs. Bruce Perens [reddit].

Ladislav Hagara | Komentářů: 5
včera 03:00 | Komunita

Byl vyhlášen vítězný wallpaper soutěže o nejlepší wallpaper pro KDE Plasmu LTS 5.18. Vítězným a tedy výchozím wallpaperem je Volna. Autor wallpaperu Nikita Babin získává notebook od TUXEDO Computers.

Ladislav Hagara | Komentářů: 12
včera 02:00 | Nová verze

Nová verze ODF 1.3 (Open Document Format), výchozího formátu dokumentů LibreOffice, byla schválena standardizační komisí OASIS. Mezi novinky ve formátu patří digitální podpis a XML šifrování dokumentů založené na OpenPGP, plus několik vylepšení funkcí již dostupných v ODF 1.2, jako jsou nové typy regresních křivek pro grafy, nová specifikace počtu desetinných míst ve formátování čísel, speciální styl záhlaví/zápatí pro první

… více »
Zdeněk Crhonek | Komentářů: 0
24.1. 09:00 | Komunita

V Brně na FIT VUT probíhá DevConf.CZ 2020, již dvanáctý ročník jedné z největších akcí zaměřených na Linux a open source ve střední Evropě. Na programu je celá řada zajímavých přednášek a workshopů. Aktuální dění lze sledovat například na Twitteru.

Ladislav Hagara | Komentářů: 0
23.1. 23:44 | Komunita

Společnost Psyonix, v květnu 2019 koupena společností Epic Games, oznámila konec podpory počítačové hry Rocket League na Linuxu a macOS. Poslední aktualizace pro tyto operační systémy vyjde v březnu a odstraní možnost hrát tento automobilový fotbal online.

Ladislav Hagara | Komentářů: 13
23.1. 14:33 | Zajímavý článek

Nová čísla časopisů od nakladatelství Raspberry Pi: MagPi 89 (pdf), HackSpace 26 (pdf) a 27 (pdf) a Wireframe 28 (pdf), 29 (pdf) a 30 (pdf).

Ladislav Hagara | Komentářů: 0
23.1. 14:11 | Nová verze

Byla vydána nová verze 12.7 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab (Wikipedie). Představení nových vlastností v příspěvku na blogu.

Ladislav Hagara | Komentářů: 3
Zdají se vám sny s IT tématikou?
 (9%)
 (1%)
 (13%)
 (17%)
 (54%)
 (7%)
Celkem 270 hlasů
 Komentářů: 10, poslední 18.1. 16:18
Rozcestník

www.AutoDoc.Cz

Dotaz: getchar v programu?

8.1. 21:20 Dooyer
getchar v programu?
Přečteno: 308×
case 1:
	getchar();
	printf("Zadejte obsah nebo objem:");
		gets(vyber);
		if (!strcmp(vyber, "obsah"))	{	
		printf("Napis delku stranu: ");
		scanf("%f",&num1);
			if (num1 > 0){
   			double result = pow(num1,3);
 			printf("Vysledek: %lf\n", result);
     	   	 }
    		else{
			printf("Chybne zadana strana");
		}
	}
	
		else if (!strcmp(vyber, "objem")){	
		printf("\nNapis delku stranu: ");
		scanf("%f%f%f",&num1,&num2,&num3);
       		if (num1 > 0 && num2 >0 && num3 >0){
       		double result = num1*num2*num3;
       		 printf("Vysledek: %lf\n", result);
           		 }
			else{
			printf("Chybne zadana strana");
				}
			}
		else{
		printf("Chybne zadany vyber!");}
	break;
Chci se zeptat proč bez getchar(); to nefunguje a po vypsání ,,Zadejte obsah nebo objem,, vyhodí chybný výběr? přece to má napsat ,,Zadejte obsah nebo objem,, a nechat mě to něco napsat a pak načíst do řetězce pomocí gets ne?

PS: je to jen část kodu zbytek sem neposlal zajímá mě jen tohle chyba je jen tu

Odpovědi

8.1. 21:39 rastos | skóre: 61 | blog: rastos
Rozbalit Rozbalit vše Re: getchar v programu?
V buffri pre stdin niečo je a ten getchar() to odtiaľ vyberie.

Tipol by som, že to niečo, je znak nového riadku, z nejakého predchádzajúceho vstupu. Resp. niečo čo predchádzajúce čítanie vstupu neprečítalo.

Navrhujem zistiť, čo ten getchar() vráti.
Jendа avatar 8.1. 21:48 Jendа | skóre: 76 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: getchar v programu?
Tak si obsah vyber vypiš, ne? A to buď pomocí printf, nebo „jako profík“ se nauč používat debugger, nastavt breakpoint za to gets a nech si tu proměnnou zobrazit.
Gréta avatar 9.1. 17:03 Gréta | skóre: 13 | blog: Grétin blogísek | Stockholm
Rozbalit Rozbalit vše Re: getchar v programu?

taky zdroják jako profík formátuj se ty závorky nedaj skoro číst jak jsou jako pořád jněkde jinde. jsem to u sebe lechce přeformátovala ;D

a jestli chceš bejt jednou jako bohatej profík tak používej misto tabulátoru mezery hele ;D

jakej používáš editor nebo IDE na psaní zdrojáčků??

case 1:
    getchar();
    printf("Zadejte obsah nebo objem:");
    gets ( vyber );
    if ( !strcmp ( vyber, "obsah" ) )
    {
        printf ( "Napis delku stranu: " );
        scanf ( "%f",&num1 );
        if ( num1 > 0 ) {
            double result = pow ( num1,3 );
            printf ( "Vysledek: %lf\n", result );
        } else {
            printf ( "Chybne zadana strana" );
        }
    }
    else if (!strcmp(vyber, "objem"))
    {
        printf ( "\nNapis delku stranu: " );
        scanf ( "%f%f%f",&num1,&num2,&num3 );
        if ( num1 > 0 && num2 >0 && num3 >0 ) {
            double result = num1*num2*num3;
            printf ( "Vysledek: %lf\n", result );
        } else {
            printf ( "Chybne zadana strana" );
        }
    }
    else
    {
    printf("Chybne zadany vyber!");
    }
    break;
Jendа avatar 9.1. 21:09 Jendа | skóre: 76 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: getchar v programu?
a jestli chceš bejt jednou jako bohatej profík tak používej misto tabulátoru mezery hele ;D
Já používám mezery proto, protože se mi zaboha nepodařilo donutit vim, aby do terminálu vypisoval taby (a to ještě s šířkou 2) -- konvertuje to na mezery, takže když to potom zkopíruju a pastnu, tak jsou to mezery a pak mám mix tabů a mezer. Když je to někde striktní, tak před commitem mezery za taby nahrazuju.
10.1. 08:42 rastos | skóre: 61 | blog: rastos
Rozbalit Rozbalit vše Re: getchar v programu?
a jestli chceš bejt jednou jako bohatej profík tak používej misto tabulátoru mezery
To ma ranilo :-(
Gréta avatar 11.1. 12:24 Gréta | skóre: 13 | blog: Grétin blogísek | Stockholm
Rozbalit Rozbalit vše Re: getchar v programu?

se asi neschodnem jestli jsou jako lepší mezery nebo taby :D :D si ale myslim že se snad schodnem žeby se to nemělo zbytečně moc míchat vzlášť když ten zdrojáček jako chceme někde ukazovat ;D

Jendа avatar 11.1. 12:30 Jendа | skóre: 76 | blog: Výlevníček | JO70FB
Rozbalit Rozbalit vše Re: getchar v programu?
No každopádně jsem článek ukázal v práci a všichni přešli na mezery.
8.1. 22:02 debian+
Rozbalit Rozbalit vše Re: getchar v programu?
Zalezi od programu pred. Spravne nema tam byt getchar.

A miesto gets() pouzi fgets().

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.