@marcopaganini/Simple Data Entry
C

Exemplo de entrada de dados simples via teclado (strings & float). Use como base para as suas próprias funções.

fork
loading
Files
  • main.c
main.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>

/* Prototypes */
int get_string(char *prompt, char *str, size_t size);
int get_float(char *prompt, float *val);

/* Maior tamanho de uma linha de entrada (float) */
#define MAXFLOATLEN 32

/* Maior tamanho do string */
#define MAXSTRINGLEN 10

int main() {
  int ret;
  float f;
  char str[MAXSTRINGLEN + 1];
  
  get_string("Enter string: ", str, sizeof(str));
  
  if (get_float("Entre um valor em ponto-flutuante", &f) != 1) {
    fprintf(stderr, "Numero inválido. Abortando execução.\n");
    exit(1);
  }
  
  printf("String: [%s]\n", str);
  printf("Float: %f\n", f);
}

int get_string(char *prompt, char *str, size_t size) {
  printf("%s", prompt);
  fgets(str, size + 1, stdin);

  /* Remove \n */
  for (char *pstr = str; *pstr != '\0'; *pstr++) {
    if (*pstr == '\n') {
      *pstr = '\0';
      break;
    }
  }
}

int get_float(char *prompt, float *pval) {
  static char str[MAXFLOATLEN + 1];
  
  printf("%s", prompt);
  fgets(str, MAXFLOATLEN + 1, stdin);
  return sscanf(str, "%f", pval);
}
gcc version 4.6.3