Pesquisar na Comunidade
Mostrando resultados para as tags ''fwrite arquivo''.
Encontrado 1 registro
-
estou escrevendo dados em um arquivo binário. no entanto, preciso reeditar os parâmetros da struct "contato" no mesmo arquivo mediante valores de entrada digitados pelo usuário. consigo inserir e ler os arquivos normalmente por meio de outras funções. porém, o "fwrite" da função abaixo (utilizada para reedição) não grava no arquivo (tentei imprimir diretamente da struct depois pra vê se tava ok e realmente o valor foi impresso). obs.: o arquivo é aberto na função main com "rb+". preciso editar o arquivo na condição do "if(!strncmp(bus......." (que é quando é encontrado o parâmetro de busca do usuário no arquivo). void localiza_reg(){ int cont=1,parada=0; struct contato c; char busca[50],op; printf("Buscar por: "); gets(busca); printf("\n"); system("cls"); fseek(f,0,SEEK_SET); do{ fread(&c, sizeof(struct contato), 1, f); if (feof(f)) break; if(!strncmp(busca,c.id.nome,strlen(busca)) || !strncmp(busca,c.id.sobrenome,strlen(busca))){ parada++; } } while(!feof(f)); system("cls"); rewind(f); proximo: do{ fread(&c, sizeof(struct contato), 1, f); if (feof(f)) break; if(!strncmp(busca,c.id.nome,strlen(busca)) || !strncmp(busca,c.id.sobrenome,strlen(busca))){ printf("registro %d/%d \n\n",cont,parada); printf ("Nome: %s\n",c.id.nome); printf ("Sobrenome: %s\n",c.id.sobrenome); printf ("\n\n"); printf ("Nova busca\n"); printf ("Atualizar.\n\n"); printf ("Selecione sua opcao.\n"); op = toupper(getch()); system("cls"); cont++; switch(op){ case 'N': goto proximo; case 'A': if (feof(f)) { printf("Registro não existente!\n"); return; } //DÚVIDA???????? printf ("nome: %s\n",c.id.nome); printf ("sobre: %s\n",c.id.sobrenome);//tá realmente onde quero gravar getch(); printf("Entre com os dados\n"); printf("Novo nome:"); gets(c.id.nome); fwrite(&c, sizeof(struct contato), 1, f); //***estou com problemas aqui printf("%s",c.id.nome); //recebeu a entrada mas n salvou no arquivo mas é impresso normalmente getch(); system("cls"); goto proximo; } } } while(!feof(f)); rewind(f); }