/* * 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; }
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; }