Jump to content


Photo

Concatenar Campos De Uma Struct ?


  • Faça o login para participar
3 replies to this topic

#1 danilodepolli

danilodepolli

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 07/10/2005, 10:55

bom dia!

estou tentando salvar os dados de uma struct em um arquivo txt...
Se for só um campo blz. eu gravo.. agora como concatenar tudo? Supondo que a minha struct tem os campos nome, ra, idade, sexo. ?

Abraços
Danilo Depolli
danilo@camphost.com.br
CAMPHOST - 1º MES GRATIS EM QUALQUER PLANO! HOSPEDAGEM WEB
QUER PATROCINIO FREE? ENTRE EM CONTATO
ICQ: 7695319
MSN: danilodepolli@bol.com.br

#2 rockbilly

rockbilly

    Normal

  • Usuários
  • 94 posts
  • Sexo:Não informado
  • Localidade:BA

Posted 10/10/2005, 11:36

bom dia!

estou tentando salvar os dados de uma struct em um arquivo txt...
Se for só um campo blz. eu gravo.. agora como concatenar tudo? Supondo que a minha struct tem os campos nome, ra, idade, sexo. ?

Abraços

Posta o pedaço do código pra analisar melhor.. já tentou usar a função strcat???
"Buscai o Reino de Deus e o resto virá por acréscimo de misericórdia!!" By Mateus
"Quanto mais sei, mais sei que nada sei" By Sócrates
"O pior câncer é o EGOÍSMO!!" By Anônimo
"A Tecnologia é boa, mas deixa as pessoas EGOÍSTAS!!" By Anônimo

#3 danilodepolli

danilodepolli

    Doutor

  • Usuários
  • 987 posts
  • Sexo:Não informado

Posted 10/10/2005, 12:00

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct alunos {
char nome[50];
char ra[12];
int idade;
};

void ler(struct alunos cad[10]) {
int i; char lixo[2];
for(i=0;i<4;i++){
printf("Digite o nome do aluno %d\n",i);
fgets(cad[i].nome,50,stdin);
printf("digite o ra do aluno %d.\n",i);
scanf("%s",cad[i].ra);
printf("Digite a idade do aluno %d.\n",i);
scanf("%d%c",&cad[i].idade,lixo);
}
};


main()
{
struct alunos cad[3];
char str[80];
int i;
FILE *fp;

if((fp = fopen("arq.txt", "w")) == NULL ){
printf("o arquivo nao pode ser aberto.\n");
exit(1);
}

ler(cad);

i++;

for(i=0;i<4;i++){
strcat(cad[i].nome,"\n");
fputs(cad[i].nome, fp);

printf("Nomes: %s .\n",cad[i].nome);
}
}

Fiz dessa forma!
Danilo Depolli
danilo@camphost.com.br
CAMPHOST - 1º MES GRATIS EM QUALQUER PLANO! HOSPEDAGEM WEB
QUER PATROCINIO FREE? ENTRE EM CONTATO
ICQ: 7695319
MSN: danilodepolli@bol.com.br

#4 rockbilly

rockbilly

    Normal

  • Usuários
  • 94 posts
  • Sexo:Não informado
  • Localidade:BA

Posted 11/10/2005, 08:08

ve se dessa forma o ajuda:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct alunos {
char nome[50];
char ra[12];
int idade;
};

void ler(struct alunos cad[10]) {
int i; char lixo[2];
for(i=0;i<4;i++){
printf("Digite o nome do aluno %d\n",i);
scanf("%s",cad[i].nome);//fgets(cad[i].nome,50,stdin);
printf("digite o ra do aluno %d.\n",i);
scanf("%s",cad[i].ra);
printf("Digite a idade do aluno %d.\n",i);
scanf("%d",&cad[i].idade);
}
};

main()
{
struct alunos cad[3];
char str[80]; char idade[5];
int i;
FILE *fp;

if((fp = fopen("arq.txt", "w")) == NULL ){
printf("o arquivo nao pode ser aberto.\n");
exit(1);
}

ler(cad);

i++;

for(i=0;i<4;i++)
{ 
 strcat(cad[i].nome,"\n");
 strcat(cad[i].ra,"\n");
 sprintf(idade,"%d\n",cad[i].idade); //CONVERTE a idade INT para STR
 fputs(cad[i].nome, fp);
 fputs(cad[i].ra, fp);
 fputs(idade, fp);
}
}

"Buscai o Reino de Deus e o resto virá por acréscimo de misericórdia!!" By Mateus
"Quanto mais sei, mais sei que nada sei" By Sócrates
"O pior câncer é o EGOÍSMO!!" By Anônimo
"A Tecnologia é boa, mas deixa as pessoas EGOÍSTAS!!" By Anônimo




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq