fork download
  1. #include <stdio.h>
  2. #include <stdbool.h>
  3.  
  4. void cleanBuffer() {
  5. int c;
  6. while ((c = getchar()) != '\n' && c != EOF);
  7. }
  8.  
  9. bool continuarCodigo() {
  10. char escolha;
  11. while (true) {
  12. printf("Deseja continuar o programa? S/N ");
  13. scanf("%c", &escolha);
  14. cleanBuffer();
  15. if (escolha != 's' && escolha != 'S' && escolha != 'n' && escolha != 'N')
  16. printf("Opcao invalida, digite S/N\n");
  17. else break; // sai do while
  18. }
  19.  
  20. // se chegou aqui, é porque "escolha" é S, s, N ou n, então não precisa testar tudo de novo
  21. return escolha == 's' || escolha == 'S';
  22. }
  23.  
  24. int main(void) {
  25. do {
  26. printf("\nfazendo algo\n");
  27. } while (continuarCodigo());
  28. return 0;
  29. }
  30.  
Success #stdin #stdout 0s 5592KB
stdin
s
a
bfdafdsa
s
n
stdout
fazendo algo
Deseja continuar o programa? S/N 
fazendo algo
Deseja continuar o programa? S/N Opcao invalida, digite S/N
Deseja continuar o programa? S/N Opcao invalida, digite S/N
Deseja continuar o programa? S/N 
fazendo algo
Deseja continuar o programa? S/N