Portál AbcLinuxu, 24. dubna 2024 23:39


Dotaz: getchar v programu?

8.1.2020 21:20 Dooyer
getchar v programu?
Přečteno: 425×
Odpovědět | Admin
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
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.1.2020 21:39 rastos | skóre: 62 | blog: rastos
Rozbalit Rozbalit vše Re: getchar v programu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
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.2020 21:48 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: getchar v programu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
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.
Já to s tou denacifikací Slovenska myslel vážně.
Gréta avatar 9.1.2020 17:03 Gréta | skóre: 36 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
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.2020 21:09 Jendа | skóre: 78 | blog: Jenda | 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.2020 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.2020 12:24 Gréta | skóre: 36 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
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.2020 12:30 Jendа | skóre: 78 | blog: Jenda | 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.2020 12:46 Gréta | skóre: 36 | blog: Grétin blogísek | 🇮🇱==❤️ , 🇵🇸==💩 , 🇪🇺==☭
Rozbalit Rozbalit vše Re: getchar v programu?
8.1.2020 22:02 debian+
Rozbalit Rozbalit vše Re: getchar v programu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
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, (c) 1999-2007 Stickfish s.r.o.