RE: https://bsky.app/profile/did:plc:3uqcrs5wxdb6c6kjmlr534ep/post/3mosgid73ai2m
THANK YOU ALL!!! - what errors should I check for and handle?
Thank you all for your kind, patient and educative responses when I obnoxiously post amateur questions! 💙 While I cannot make any promises because of how my brain works, I am almost ready to continue reading *The C Programming Language, 2nd Edition”. I just want to experiment a little bit with error handling, specifially how to handle wrong input (char VS. int, etc.) and also to learn to indentify code that runs the risk of overflow/underflow.
Question: what errors do you recommend checking for and handling?
Meanwhile, thank you all! 🥰
#include <stdio.h>
//Function declarations
int newPin();
int checkPin(int i);
//Program that prompts for, verifies and saves pins temporarily into an array
int main() {
//New pin
int pin = 0;
//History
int history[10] = {0,0,0,0,0,0,0,0,0,0};
int history_limit = 10;
int history_index = 0;
printf("Hello there! What would you like to do? (V)iew your saved pins, (S)ave a new pin or (E)xit: ");
int choice = 0;
while ((choice = getchar()) != EOF) {
switch (choice) {
case ('V'): { //Display saved pins
printf("\nYour saved pins are:\n\n");
for (int i = 0; i < history_limit; i++) printf("%d\n", history[i]);
printf("\nWhat would you like to do next? (V)iew your saved pins, (S)ave a new pin or (E)xit: ");
break;
}
case('S'): { //Prompt for and verify newly entered pin
pin = newPin();
if (checkPin(pin) == pin) {
history[history_index] = pin;
history_index++;
if (history_index >= history_limit) history_index = 0;
}
break;
}
case ('E'): goto EXIT; //Terminate program
}
}
EXIT: printf("\nGoodbye!\n");
return 0;
}
//Function definitions
//Prompt user to enter a new pin
int newPin() {
int pin = 0;
printf("This enter your pin: ");
scanf("%d", &pin);
getchar();
return pin;
}
//Verify newly entered pin
int checkPin (int i) {
int check = 0;
printf("Confirm your new pin: ");
while((scanf("%d", &check)) != EOF) {
if (check != i) printf("Mismatch! Confirm your new pin: ");
else if (check == i) {
printf("Success! Your new pin is %d. What would you like to do next? (V)iew your saved pins, (S)ave a new pin or (E)xit: ", i);
goto EXIT;
}
}
EXIT: return i;
}
//TODO
//Error handling (overflow, input data type, other?)
Ett konstruktivt program för goda liv – intervju med Per Herngren om postprotest och Buen Vivir
Vad händer när vi bygger det samhälle vi vill ha – här och nu? Per Herngren om Buen Vivir, ickevåld och performativ samhällsförändring. Lär dig hur gemenskaper skapar hållbara lösningar. Läs mer nu!Kære kammerater,
Gå foran med et eksempel! Vi mangler et brunchhold (hver fjerde søndag). Brunchen må godt være vegansk og I får al den hjælp, I behøver for at komme i gang.
Glæder os til at høre fra jer!
#handling-gir-forvandling!