@GustavoHSL Posted December 8, 2012 Report Share Posted December 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;} Quote Link to comment Share on other sites More sharing options...
0 == Douplus == Posted December 8, 2012 Report Share Posted December 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! Quote Link to comment Share on other sites More sharing options...
0 @GustavoHSL Posted December 8, 2012 Author Report Share Posted December 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? Quote Link to comment Share on other sites More sharing options...
0 == Douplus == Posted December 8, 2012 Report Share Posted December 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). Quote Link to comment Share on other sites More sharing options...
Question
@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 to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.