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 13:33 | Zajímavý projekt

Vývojáři přenosného počítače Pocket Popcorn Computer (Pocket P.C.) (zprávička) informují na svém blogu, že návrh hardwaru zveřejnili na GitHubu pod licencí CC BY-SA 3.0 US.

Ladislav Hagara | Komentářů: 2
dnes 08:00 | Zajímavý článek

David Revoy, autor mj. komiksu Pepper&Carrot, zveřejnil novou iteraci své instalační příručky pro použití Kubuntu, nyní 20.04, jako grafické pracovní stanice.

Fluttershy, yay! | Komentářů: 1
dnes 02:00 | IT novinky

Počátkem roku někdo odcizil z Intelu několik GB citlivých dat. Prvních 20 GB bylo zveřejněno [Hacker News, ZDNet].

Ladislav Hagara | Komentářů: 3
včera 19:33 | Nová verze

Bylo vydáno Ubuntu 20.04.1 LTS, tj. první opravné vydání Ubuntu 20.04 LTS s kódovým názvem Focal Fossa. Přehled novinek v poznámkách k vydání a v přehledu změn. Součástí oznámení je infografika Ubuntu od 2004 do 20.04 LTS (png).

Ladislav Hagara | Komentářů: 0
včera 18:00 | Pozvánky

MojeFedora.cz upozorňuje na letošní Flock aneb letošní online konferenci zaměřenou na přispěvatele do Fedory. Konference probíhá od zítra 7. srpna do neděle 9. srpna, viz program.

Ladislav Hagara | Komentářů: 0
včera 15:00 | Nová verze

Po půl roce od vydání verze 2.31 byla vydána verze 2.32 knihovny glibc (GNU C Library). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 1
včera 09:33 | IT novinky

Dnes končí bezpečnostní konference Black Hat USA 2020 (Twitter) a začíná bezpečnostní konference DEF CON 28 (Twitter). Kvůli onemocnění COVID-19 ne v Las Vegas, ale pouze virtuálně. Na konferenci DEF CON naplánované přednášky jsou již k dispozici na DEF CON Media Serveru a na YouTube.

Ladislav Hagara | Komentářů: 1
včera 07:33 | Nová verze

Po více než pěti letech byla vydána nová verze 1.7 multiplatformního grafického editoru Pinta (Wikipedie). Přehled novinek v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
včera 00:33 | Komunita

V září loňského roku Richard Stallman rezignoval na funkci prezidenta Free Software Foundation (FSF). Včera byl zvolen nový prezident. Je jím Geoffrey Knauth (Twitter).

Ladislav Hagara | Komentářů: 8
5.8. 18:11 | Nová verze

Mozilla na svém blogu informuje o Enhanced Tracking Protection (ETP) 2.0 aneb nové verzi rozšířené ochrany proti sledování ve Firefoxu. Nová verze chrání také před technikou redirect tracking a každých 24 hodin smaže sledovací cookies. Podrobněji na blogu věnovaném bezpečnosti.

Ladislav Hagara | Komentářů: 1
Dokážete si představit, že by váš hlavní počítač (desktop, notebook) byl v současné době založen na architektuře jiné než x86 (x86_64)? Například ARM, POWER, RISC-V,…
 (9%)
 (12%)
 (57%)
 (16%)
 (6%)
Celkem 179 hlasů
 Komentářů: 13, poslední dnes 10:04
Rozcestník

Dotaz: getchar v programu?

8.1. 21:20 Dooyer
getchar v programu?
Přečteno: 388×
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: 62 | 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: 25 | 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;
Everyone dies but not everyone lives - William Wallace ✊ ⓔⓐⓣ ⓣⓗⓔ ⓡⓘⓒⓗNo lives matter!!!!
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: 62 | 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: 25 | 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

Everyone dies but not everyone lives - William Wallace ✊ ⓔⓐⓣ ⓣⓗⓔ ⓡⓘⓒⓗNo lives matter!!!!
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.
Gréta avatar 11.1. 12:46 Gréta | skóre: 25 | blog: Grétin blogísek | Stockholm
Rozbalit Rozbalit vše Re: getchar v programu?

:D :D :D :D

Everyone dies but not everyone lives - William Wallace ✊ ⓔⓐⓣ ⓣⓗⓔ ⓡⓘⓒⓗNo lives matter!!!!
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.