Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Kielletyt merkit (C++)

Quarterlife [29.04.2005 23:24:40]

#

Olen aloittelija C++:assa, ja olenkin tehnyt jo hienon ohjelman joka piirtää erittäin hienon pyramidin. Homma menee siinä vaiheessa pipariksi kun korkeudeksi annetaankin kirjaimia. Mitenkähän tämmöiset "kielletyt merkit" voisi toteuttaa?

Meitsi [29.04.2005 23:38:24]

#

Käyt loopissa taulukon (tekstin) läpi merkki merkiltä ja tutkit onko merkki kelpaava. Kun vastaan tulee \0 merkki tai kielletty merkki, lopetat loopin breakilla (ja kerrot jos merkki oli kielletty).

Metabolix [30.04.2005 10:00:45]

#

Streamin (cin) käytössä en osaa vastata, mutta stdio.h:n funktioilla sen voi tehdä näin:

#include <stdio.h>
#define SUURIN_LUKU 25
int LueLuku(void)
{
	int Luku;

	while (1)
	{
		printf("\nAnna luku: ");
		/* Luetaan, tarkistetaan, että luettiin yksi kevollinen arvo ja ettei arvo ole suurempi kuin haluamme. */
		if ((scanf("%i", &Luku) != 1) || (Luku > SUURIN_LUKU))
		{
			/* Ilmoitetaan virhe, tyhjennetään puskuri ja yritetään uudestaan */
			printf("\n Virhe!!! \n");
			do {
				Luku = getc(stdin);
			} while (Luku != '\n' && Luku != EOF);

		}
		else /* Onnistui, palautetaan */
			return Luku;
	}
}

Quarterlife [04.05.2005 22:43:32]

#

Törmäsimpäs tässä ihan mäihällä esimerkkiin joka tekee juuri tämän cin:llä. En kyllä tajua miten tämä tunnistaa mikä merkki on kyseessä, mut anyway:

while (!cin) {
            cout << "ei merkkeja";
            cin.clear ();
            cin.ignore (1024,'\n');
            cout << "annas luku: ";
            cin >> muuttuja;
        }

Jtm [06.05.2005 13:38:27]

#

Ei C++:lla ole olemassakaan kielettyjä merkkejä. Stringin käyttö ne rajat asettaa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta