Pokračuj ve výpočtu stiskem Enteru nebo zadáním znaku a Enteru – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pokračuj ve výpočtu stiskem Enteru nebo zadáním znaku a Enteru – C / C++ – Fórum – Programujte.comPokračuj ve výpočtu stiskem Enteru nebo zadáním znaku a Enteru – C / C++ – Fórum – Programujte.com

 

Mira
~ Anonymní uživatel
54 příspěvků
20. 10. 2013   #1
-
0
-

Zdravím

Mám program pro výpočet poslopnosti čísel, kde se má generovat poslopnost buď jen stiskem Enteru, nebo zadáním libovolného znaku kromě 'n' a Enteru ('n' slouží k ukončení programu). Problém je v tom, že zadáním znaku a stisku Enteru se mi do proměnné Char načtou dva znaky a tím pádem se spočítají dva kroky. Pokud mačkám jen Enter, vykoná se správně jeden krok. Zkoušel jsem řešení i pomocí řetezce, kdy jsem četl jen znak na pozici [0], a zbytek pak smazal znakem '\0', ale stejně se mi vykonají dva kroky. Už nevím, co s tím. Používám přikaz getchar. Můžete mi prosím poradit?

Nahlásit jako SPAM
IP: 217.196.215.–
Robo
~ Anonymní uživatel
82 příspěvků
20. 10. 2013   #2
-
0
-

#1 Mira
Ten enter ti zostáva v bufferi, stačí ti ešte raz naprázdno načítať jeden znak (načíta sa ten čo je v bufferi)
Takže použi ešte raz getchar()
 

Nahlásit jako SPAM
IP: 178.253.144.–
Mira
~ Anonymní uživatel
54 příspěvků
20. 10. 2013   #3
-
0
-

#2 Robo
v tomto případě to funguje, ale pokud žádný znak zadávat nechci a chci jen pokračovat stiskem enteru, tak musím enter potom mačkat dvakrát

Nahlásit jako SPAM
IP: 217.196.215.–
Robo
~ Anonymní uživatel
82 příspěvků
20. 10. 2013   #4
-
0
-

#3 Mira
Tak to daj nejak do if, to je ten najmensi problem.
Alebo tam daj podmienku

while(getchar() != '\n')
	continue;

Programovaní sa dá všetko vyriešiť viacerými spôsobmi, stačí ich len hľadať a skúšať

Nahlásit jako SPAM
IP: 178.253.144.–
Robo
~ Anonymní uživatel
82 příspěvků
20. 10. 2013   #5
-
0
-
Nahlásit jako SPAM
IP: 178.253.144.–
Robo
~ Anonymní uživatel
82 příspěvků
20. 10. 2013   #6
-
0
-

Tu ti to nepýta 2 krát enter 

#include <stdio.h>
#include <stdlib.h>

int main()
{
	char c, ch;

	printf("Zadaj znak: ");
	c = getchar();

	if(c != '\n'){
		while(getchar() != '\n'){
			continue;
		}
	}

	printf("Zadaj znak: ");
	ch = getchar();

	printf("Zadal si znaky %c a %c\n", c, ch);

	system("PAUSE");
}
Nahlásit jako SPAM
IP: 178.253.144.–
Mira
~ Anonymní uživatel
54 příspěvků
20. 10. 2013   #7
-
0
-

#4 Robo
diky za radu, jeste bych se rad zeptal, jak do te smycky dostat, aby se mi zachytilo na vstupu stisknuti 'n', kterym se program ukonci

Nahlásit jako SPAM
IP: 217.196.215.–
Mira
~ Anonymní uživatel
54 příspěvků
20. 10. 2013   #8
-
+1
-
Zajímavé

#7 Mira
už jsem na to přišel, stačí zkombinovat #4 a #6 a funguje to :-)

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

Podobná vlákna

Čtení znaku bez enteru — založil Thadeus

Vstup znaku bez ENTERu — založil eidam1995

Scanner vlozeni enteru — založil werixon

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ý