Beispiel #1
0
/*
 * kysyKyllaEi - kysyy varmistuksen käyttäjältä
 *
 * char kysymys[] - käyttäjälle näytettävä kysymys
 * int oletus     - oletusvastaus on KYLLA tai EI
 *
 * Paluuarvo int - 1: myöntävä vastaus
 *                 0: epäselvä vastaus
 *                -1: kieltävä vastaus
 *
 * Tulostaa stdoutiin kysymyksen ja "(k/e)>" ja odottaa myöntäväksi
 * vastaukseksi kirjaimia K tai k. Vastaavasti kieltäväksi vastaukseksi
 * odotetaan kirjaimia E tai e. Toinen vastauksista määritellään
 * oletusvastaukseksi, joka aktivoidaan antamalla tyhjä vastaus. Jos käyttäjä
 * antaa vastauksen, jota ei voida tulkita myöntäväksi eikä kieltäväksi,
 * kyseessä on epäselvä vastaus.
 *
 */
int kysyKyllaEi(char kysymys[], int oletus) {
  if (oletus == KYLLA) {
    printf("%s (K/e)> ", kysymys);
  } else {
    printf("%s (k/E)> ", kysymys);
  }

  char c[2];
  lueSana(stdin, c, sizeof(c), hyvaksyKaikki);
  lueRoskat(stdin, RIVIN_LOPPUUN);

  int vastaus = 0;
  if (c[0] == 'K' || c[0] == 'k') vastaus = KYLLA;
  if (c[0] == 'E' || c[0] == 'e') vastaus = EI;
  if (c[0] == '\0') vastaus = oletus;

  return vastaus;
}
Beispiel #2
0
int main(void) {

	char tilinumero[256];
	FILE * tili;
	char pinkoodi[256];
	char tarkistusPin[256];
	int valinta;


	printf("\nAnna tilinumero: ");
	fgets( tilinumero, 256, stdin );

	if( tilinumero[ strlen(tilinumero) -1] == '\n')
		tilinumero[ strlen(tilinumero) -1] = '\0';
	else
		lueRoskat();

	strcat(tilinumero, ".tili");

	if( ( tili = fopen( tilinumero, "r" ))!=NULL) {

		printf("Anna pinkoodisi: ");

		fgets( pinkoodi, 256, stdin );

		if( pinkoodi[ strlen(pinkoodi) -1] == '\n')
			pinkoodi[ strlen(pinkoodi) -1] = '\0';
		else
			lueRoskat();


		fgets( tarkistusPin, 256, tili );

		if( tarkistusPin[ strlen(tarkistusPin) -1] == '\n')
			tarkistusPin[ strlen(tarkistusPin) -1] = '\0';

		if( tarkistusPin[ strlen(tarkistusPin) -1] == '\r')
			tarkistusPin[ strlen(tarkistusPin) -1] = '\0';


		if( strcmp( pinkoodi, tarkistusPin )  == 0 ) {

			printf("\nPin-koodi Ok!\n\n");
			printf("Tervetuloa! \n");
			while (1) {

				paluu:
				printf("\n1. Saldo. \n");
				printf("2. Nosto. \n");
				printf("3. Talletus. \n");
				printf("0. Lopeta. \n\n");
				scanf("%d", &valinta);

				switch (valinta) {

					case 1:
						luesaldo();

						break;

					case 2:
						nosto();


						break;

					case 3:
						talletus();


						break;

					case 0:
						printf("Kiitos asioinnistasi!");

						break;

					default:
						printf("Virheellinen valinta!\n");
						goto paluu;

						break;
				}
				if(valinta==0)
					break;
			}



		} else {

			printf("Vaara pin-koodi, yrita uudelleen\n");

		}

	} else {
		printf("\nVirheellinen tilinumero!\n");
	}



	return 0;

}