mirror of
https://gitlab.com/blau_araujo/cblc.git
synced 2025-06-15 00:36:35 -03:00
Exemplo da aula 11 (videoconferência) #23
Owner
```c
#include <stdio.h>
void print_stdinbuf_addr(void);
void not_consumed(void);
int main(void) {
int num;
int ret;
char str[10];
// Ainda não temos um buffer de entrada...
print_stdinbuf_addr();
printf("Digite um número: ");
ret = scanf("%d", &num);
// Depois do 'scanf' o buffer é criado no heap...
print_stdinbuf_addr();
not_consumed();
printf("num = %d\n", num);
printf("ret = %d\n", ret);
printf("Digite qualquer coisa e tecle ENTER: ");
ret = scanf("%9s", str);
// O buffer de entrada continua existindo...
print_stdinbuf_addr();
not_consumed();
printf("str = %s\n", str);
printf("ret = %d\n", ret);
// O buffer continua existindo até o fim do programa...
print_stdinbuf_addr();
return 0;
}
void print_stdinbuf_addr(void) {
printf("Endereço do buffer de entrada: %p\n", (void *)stdin->_IO_read_base);
}
void not_consumed(void) {
char chr;
printf("Não consumidos: ");
while (1) {
chr = getchar();
printf("0x%02x ", chr);
if (chr == EOF || chr == '\n') break;
}
putchar('\n');
}
```
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?