@GustavoHSL Postado Dezembro 8, 2012 Denunciar Share Postado Dezembro 8, 2012 Estou comecando no C, e não consegui achar como faz para escrever os dados que já estao gravados na struct.estou tentando escrever um programa que escreve ate 30 nomes em um arquivo txt.ate agora tenho isso:#include <stdio.h>#include <stdlib.h>struct nomeSobrenome{ int nome;}int main(){ FILE *arq; int i; arq = fopen("teste.txt", "w");for(i=0,i<30,i++){ printf(" Nome completo : "); gets(nomeSobrenome.nome);} return 0;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 == Douplus == Postado Dezembro 8, 2012 Denunciar Share Postado Dezembro 8, 2012 Olha... Mudei teu programinha, tenta entender e qualquer coisa pergunta.#include <stdio.h> #include <stdlib.h> struct nomeSobrenome{ char nome[50]; }; int main() { FILE *arq; int i; struct nomeSobrenome pessoa; arq = fopen("teste.txt", "w"); for(i=0;i<30;i++){ printf(" Nome completo : "); fgets(pessoa.nome, 50, stdin); fprintf(arq, "%s", pessoa.nome); } fclose(arq); return 0; }Outro detalhe, nesse caso estamos salvando a string num arquivo texto. Quando voce quiser salver uma struct use entrada e saida binaria para arquivos ao invés de texto. fwrite() e fread() fazem E/S binarias.Ateh! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 @GustavoHSL Postado Dezembro 8, 2012 Autor Denunciar Share Postado Dezembro 8, 2012 entendi como a string foi gravada, mas, na linha fgets(pessoa.nome, 50, stdin);é sempre usado stdin pra gravar no arquivo?como fica a funcao com entrada e saida binaria? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 == Douplus == Postado Dezembro 8, 2012 Denunciar Share Postado Dezembro 8, 2012 entendi como a string foi gravada, mas, na linha fgets(pessoa.nome, 50, stdin); é sempre usado stdin pra gravar no arquivo? então, não (heheh....). é assim, stdin le a entrada padrão, a principio o teclado. Essa linha le o que o usuario digita. A linha que grava é a linha"fprintf(arq, "%s", pessoa.nome);como fica a funcao com entrada e saida binaria?Tem que usar a fopen com o parametro "wb" ao invés do "w" usando fwrite() (<--- nesse link tem um exemplo). Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
@GustavoHSL
Estou comecando no C, e não consegui achar como faz para escrever os dados que já estao gravados na struct.
estou tentando escrever um programa que escreve ate 30 nomes em um arquivo txt.
ate agora tenho isso:
#include <stdio.h>
#include <stdlib.h>
struct nomeSobrenome{
int nome;
}
int main()
{
FILE *arq;
int i;
arq = fopen("teste.txt", "w");
for(i=0,i<30,i++){
printf(" Nome completo : ");
gets(nomeSobrenome.nome);
}
return 0;
}
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.