zeke 0 Denunciar post Postado Abril 24, 2007 Ai pessoal, tow precisando mt da ajuda de vcs. Na aula de ontem, o professor passou esse programinha aki...dai naum rodou...e nem ele sabe o pq...Se alguém puder me ajudar.. ele da o seguinte : incompatible types in assignment of `const char[17]' to `char[30]' na linha em q se atribue um valor para a variavel Aluno1.nomeme Ajudem !!!#include<stdio.h>#include<stdlib.h>//Ponteiros P/ Manipulação de ArquivosFILE *arquivo1,*arquivo2;//Estrutura Alunotypedef struct Dados_Aluno{ char nome[30]; char idade[1]; char sexo[10]; int matricula; char serie; }Dados_aluno; //Começo do Programachar * foo(){ char *a = "bla"; return a;} int main(void){ arquivo1=fopen("leitura.txt","r"); arquivo2=fopen("escrita.txt","w"); Dados_Aluno Aluno1; Aluno1.nome="um nome qualquer"; Aluno1.idade=22; Aluno1.sexo="Masculino"; Aluno1.matricula=7711689; Aluno1.serie=5; printf(arquivo2,"%c",Aluno1.nome); printf(arquivo2,"%c",Aluno1.idade)idade; printf(arquivo2,"%c",Aluno1.sexo); printf(arquivo2,"%d",Aluno1.matricula); printf(arquivo2,"%c",Aluno1.serie); fclose(arquivo2); return(0);}Desde Já agradeço a quem me ajudarValeu Compartilhar este post Link para o post Compartilhar em outros sites
skimo-solar 0 Denunciar post Postado Abril 24, 2007 incompatible types in assignment of `const char[17]' to `char[30]'Na verdade este não é o único problema. No início você faz um typedef definindo struct Dados_Aluno como Dados_aluno e depois chama Dados_Aluno, isto vai gerar um erro já que C é case sensitive. Aluno1.nome="um nome qualquer";Aqui está dando este problema porque você está tentando colocar um const char[17] ("um nome qualquer") num char[30] de uma forma errada.Tente usar a strcpy da string.h, ficaria algo como strcpy(Aluno1.nome, "um nome qualquer"); Aluno1.idade=22;Aqui vai dar erro já que você definiu char idade[1];, como você quer colocar um int lá? Aluno1.serie=5;serie é um char, então deve ficar entre aspas simples. printf(arquivo2,"%c",Aluno1.nome);printf(arquivo2,"%c",Aluno1.idade)idade;printf(arquivo2,"%c",Aluno1.sexo);printf(arquivo2,"%d",Aluno1.matricula);printf(arquivo2,"%c",Aluno1.serie);Esta não é a forma de utilizar a função printf, você deveria colocar o fprintf no lugar.Nem tudo é %c também, você deve verificar onde mudar para %s (string) para imprimir corretamente. Duvido muito que realmente seu professor não tenha encontrado os erros neste programa (se isso for verdade você deveria cogitar mudar de faculdade). Mas está aí uma ajuda, fiz às pressas então não chequei tudo. Compartilhar este post Link para o post Compartilhar em outros sites
zeke 0 Denunciar post Postado Abril 24, 2007 Cara..valeu pela ajuda..com algumas alterações funcionou beleza..Ah..por incrivel q pareça ta identico ao q o professor passou pra gente...dizendo inclusive que tinha rodado o programa e funcionado...q naum sabia o pq do erro..mas enfim..obrigado pela ajuda...t + Compartilhar este post Link para o post Compartilhar em outros sites