dúvida sobre struct

1. dúvida sobre struct

Raphael Thaumaturgo Molnar
raphamolnar

(usa Ubuntu)

Enviado em 30/05/2011 - 14:05h

Galerinha estou com muitas dúvidas sobre struct, vi vários exemplos porém nenhum rodou no meu compilador.

O ultimo que visualizei foi o seguinte link:

http://www.vivaolinux.com.br/script/Estrutura-typedef-struct-em-C

e me retornou a seguinte mensagem:

raphaelmolnar@RaphaelMolnar:~/C++$ g++ teste_struct.c -o teste_struct
teste_struct.c: In function ‘int main()’:
teste_struct.c:20: warning: format ‘%s’ expects type ‘char*’, but argument 2 has type ‘char (*)[15]’
teste_struct.c:22: warning: format ‘%s’ expects type ‘char*’, but argument 2 has type ‘char (*)[15]’
teste_struct.c:24: warning: format ‘%s’ expects type ‘char*’, but argument 2 has type ‘char (*)[15]’


Tenho também um código que tentei compilar porém também retornou um monte de erros se alguém puder me apontar onde estou errando seria de grande ajuda . . . desde já agradeço

segue o código que estou tentando fazer funcionar



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

int idade(){

int idade;

printf("Digite a 1 idade ");scanf("%i", idade);
printf("\n\n");
return idade;}

string nome(){

string nome;

printf("Digite o 1 nome "); scanf("%s", nome);
printf("\n\n");
return nome;}

int telefone(){

int telefone;

printf("Digite o 1 telefone "); scanf("%i", telefone);
printf("\n\n");
return telefone;}


typedef struct

{int age;int tell;string name;}registro;

//registro age; registro tell; registro name;

int main(){


registro;

for(int i=1;i=10;i++)
{printf("%s,%s,%s", registro.name[i]=nome(),registro.age[i]=idade(),registro.tell[i]=telefone()"\n");}
getchar();
return EXIT_SUCCESS;}





  


2. Tente assim

Danilo Renato da Silva
danilo_renato

(usa Ubuntu)

Enviado em 31/05/2011 - 11:30h

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

using namespace std;

int idade(){

int idade;

printf("Digite a 1 idade ");scanf("%d", &idade);
printf("\n\n");
return idade;
}

char* nome(){
char n[100];
printf("Digite o nome: ");
scanf("%s", &n);
printf("\n");
return n;
}

int telefone(){

int telefone;

printf("Digite o telefone "); scanf("%d", &telefone);
printf("\n\n");
return telefone;
}


typedef struct

{
int age;
int tell;
char name[100];
} registro;

//registro age; registro tell; registro name;

int main(){


registro r[10];

for(int i=1;i=10;i++) {
strcpy(r[i].name, nome());
r[i].age = idade();
r[i].tell = telefone();
fflush(stdin);
printf("Nome: %s, Idade: %d, Telefone: %d\n", r[i].name, r[i].age, r[i].tell);

}
getchar();
return EXIT_SUCCESS;

}



3. Re: dúvida sobre struct

Danilo Renato da Silva
danilo_renato

(usa Ubuntu)

Enviado em 31/05/2011 - 11:43h

Em c/c++ string não é um tipo nativo, é uma classe da STL (Standard Template Library) que fica em <iostream> (sem .h mesmo). Para ler uma string utiliza-se getline(std::cin, str) e não scanf.
Uma struct deve ser declarada como uma variável, ou seja, nome_struct nome_variavel. Ex: registro r[10] (neste caso um vetor de 10 registros). Para acessar o atributo name: r[i].name.


4. bleza

Raphael Thaumaturgo Molnar
raphamolnar

(usa Ubuntu)

Enviado em 01/06/2011 - 06:39h

Muito obrigado gente, por emquanto estou muito corrido com as provas finais do semestre porém até amanhã eu consigo testar as dicas.



Muito obrigado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts