Jump to content

Marioh

Apoiador Byte
  • Content Count

    9
  • Joined

  • Last visited

Community Reputation

7 Neutral

1 Follower

About Marioh

  1. Marioh

    Cursos

    Bom se tu sabe um pouco de C, o Frederico Pissarra tem três livros bem legais, e apesar de dizer que não quer ensinar, os livros são otimos para isso. Também tem o RE4B , que eu não sei se é bom, e o livro do Mercês.
  2. @Fernando Mercês Parece que o fflush pode funcionar dessa maneira só não é garantido, li em algum lugar que os kernels atuais suportam, mas não sei ao certo tô com o 5.5.13 e comigo não funciona. Já o __fpurge da stdio_ext.h funciona examento como esperado. Li também em algum lugar (acho que foi no reddit) que realmente nao faz sentido dar um "flush" no stdin, afinal pra onde ele vai ser flushado ? Lá na manpage do fflush ele fala que se a stream for de output ele força um write nos dados em buffer que ultimamente tem um destino.
  3. Aí @Fernando Mercês, posso tá errado mas fflush não tem comportamento definido quando usado no stdin, tem ?
  4. Se eu nao me engano tu tem que esvaziar os stdin. tenta: char clear; while((clear = getchar()) != '\n' && clear != EOF); depois do seu primeiro scan. espero que ajude.
  5. Marioh

    Dúvida em C

    Pois e percebi isso assim que postei #include <stdio.h> #include <stdlib.h> typedef struct { long int numero; char nome[100]; }addr; void main(){ addr teste = {0, "default"}; FILE *p; p = fopen("teste", "rb"); if(p == NULL){ printf("ERROO"); exit(1); } int i = fread( &teste, sizeof(addr), 1, p); printf("read: %lu\n", teste.numero); puts(teste.nome); printf("%zu\n", sizeof(long int) ); fclose(p); } espero que ajude.
  6. Marioh

    Dúvida em C

    Entao dei um "echo "70707070testando > teste" e o codigo fica assim: #include <stdio.h> #include <stdlib.h> typedef struct { int numero; char nome[100]; }addr; // coloquei um valorzinho default pra debugar addr teste = {0, " "}; int main(void){ FILE *p; p = fopen("teste", "r"); if(p == NULL){ printf("ERROO"); exit(1); } // parenteses opcionais fscanf(p,"%d%s" , &(teste.numero), &teste.nome); printf("%u\n", teste.numero); puts(teste.nome); fclose(p); return 0; } Espero que ajude
  7. Marioh

    Dúvida em C

    Tu pode tentar com o fscanf.
  8. creio que a logica do teu primeiro for esteja errada tbm pq ele nunca vai ser executado com valores menores que 11. Talvez o teu x deva ser 0 ? Alem disso tu esta lendo mais do que teu vetor e assim tu vai pegar lixo na memoria.
  9. No printf falta os colchetes no 'a' como a[ i ]
×
×
  • Create New...