
vhbsouza
Membros-
Total de itens
8 -
Registro em
-
Última visita
Tudo que vhbsouza postou
-
Oi... tenho um trabalho da faculdade pra fazer...que eu tenho que ler um nome contendo no maximo 30 caracteres e um numero de cpf contendo 11 digitos, que está em um arquivo já criado e tenho que ordenar os nomes de acordo com o numero de CPF do menor para o maior. E nesse arquivo pode ter até 100 linhas o conteúdo do arquivo é esse olhem... como eu faço para ler do arquivo para o struct o meu código até agora: #include <stdio.h> #include <stdlib.h> #include <conio.h> struct nomes { char nome[31]; char cpf[12]; }fichas[100]; int main() { FILE*arq; int i=0,j; if((arq=fopen("arq.txt","r+"))==NULL) { printf("Erro ao abrir o arquivo."); for(i=0;i<=2;i++) putch(7); } else { while(i<100 && !feof) { gotoxy(1,1); //fseek(,,); for(j=0;j<=30;j++) fichas[i].nome[j]=fgetc(arq); fgetc(arq); for(j=0;j<=11;j++) fichas[i].cpf[j]=fgetc(arq); gotoxy(1,1); printf("%s ",fichas[1].nome); i++; } getch(); } } ele está compilando e dá 2 Warnings mais não exibe nada na tela vocês podem me ajudar? :wacko:
-
(Resolvido) programa que cadastre pessoas e separe por caracteristcas
pergunta respondeu ao escobar_rpe de vhbsouza em C, C++
Olha pra falar a verdade...eu não entendi o que voce tanto quer... mais se entendi bem, esse codigo pode resolver seu problema Obs...Meu computador deu pau...aqui com uma tempestade e não pude testar direito. pode ter algum problema na hora dos printf aqui vai o CODE #include <stdio.h> #include <string.h> #include <conio.h> struct informacao//Struct criada pela AlineI { char nome[30];//perceba que o nome só serve para enfeitar o programa char sexo[2]; int anoNasc; int codEscolaridade; /*dai na hora que pergunta o codigo da escolaridade, imprima as opções (1- analfabeto 2- primeiro grau 3-segundo grau 4- superior), e o usuario digita apenas o codigo, que seria 1, 2, 3 ou 4.*/ }; int main() { struct informacao pessoa; int i,n;//n é o numero de pessoas que serão lidas as informações int dado1=0,dado2=0,dado3=0,dado4=0; int qntH=0; float per,med; printf("Escreva a Quantidade de pessoas:\n"); fflush(stdin);//Limpa o Buffer do teclado scanf("%d",&n); for(i=1;i<=n;i++)//determina o numero de vezes que será feito o LOOP { printf("Leia o Nome da Pessoa %d\n=>",i); fflush(stdin); scanf("%s",&pessoa.nome); printf("Leia o sexo da Pessoa %d\n=>",i); fflush(stdin); scanf("%s",&pessoa.sexo); strupr(pessoa.sexo);//converte a string para maiusculo printf("Leia o Ano de Nascimento da Pessoa %d\n=>",i); fflush(stdin); scanf("%c",&pessoa.anoNasc); printf("Leia o Grau de Escolaridade da Pessoa %d\n",i); printf("\t(1- analfabeto 2- primeiro grau 3- segundo grau 4- superior)\n=>",i); fflush(stdin); scanf("%d",&pessoa.codEscolaridade); //Captura dos Dados if((strcmp(pessoa.sexo,"F"))&& (2008-pessoa.anoNasc>=40)&&((pessoa.codEscolaridade==3) ||(pessoa.codEscolaridade==4))) { dado1++;//soma 1 a qnt de mulheres com mais de 40 anos } if(strcmp(pessoa.sexo,"M") && pessoa.codEscolaridade==1) dado2++;//soma a qnt de homens analfabetos dado4+=(2008-pessoa.anoNasc);//acumula a idade dos Homens analfabetos if((2008-pessoa.anoNasc<30)&& pessoa.codEscolaridade==4) dado3++;//soma a qnt de pessoas com menos de 30 anos q tem curso superior if((strcmp(pessoa.sexo,"M"))||(strcmp(pessoa.sexo,"m"))) qntH++; } per=(dado2*qntH)/100; med=dado4/qntH; //Exibição dos Dados printf("Pergunta A:\n==>%d\n",dado1); printf("Pergunta B:\n==>%f\n",per); printf("Pergunta C:\n==>%d\n",dado3); printf("Pergunta D:\n==>%f\n",med); getch(); return 0; } ai tem a library conio.h porque eu uso o Borland aqui na faculdade espero que tenha ajudado...xD! -
Oi... eu estou fazendo a leitura de uma array string e não quero que o programa reconheça o caracter (espaço) como uma string. O meu problema é esse: Não posso usar scanf porque a string pode ser composta de mais de um nome e o scanf reconhece o (espaço) como separador de string então no exemplo: são paulo usando o scanf a string "são" vai para a primeira variavel e "paulo" vai para a segunda variavel.... e quando eu uso gets ele resolve esse problema, mais ele passa a reconhecer (espaço) como uma string e então a armazena na variável. for (i=0;i<4;i++) { textcolor(4); textbackground(7); cprintf("\nLEIA O NOME DA CIDADE %d:\r\n=>",i+1); fflush(stdin); gets(cidades[i]); strupr(cidades[i]);//converte os caracteres para maiúsculo //Verifica se o número esta no vetor. for(j=i-1;j>=0;j--) if(strcmp(cidades[j],cidades[i])==0) { i--; j=-1; textcolor(66); textbackground(7); cprintf("\nESSE NOME já ESTA NO VETOR, INSIRA NOVAMENTE.\r\n"); } } Alguém me ajuda..... :wacko:
-
kandrade... o codigo é esse... Irei colocar o trecho de código relacionada a esta parte: // Problema na parte da consulta.... a função buscaVeículo está sempre retornando -1. bus_cid1[21]=' '; printf("Leia o nome da Cidade 1:\n"); while (scanf("%s",bus_cid1) && strcmp(bus_cid1,"fim")!=0) { fflush(stdin); while ((cid1=buscaCidade(bus_cid1))==-1) // essa função deve retornar -1 se não achar a cidade ou { printf("Leia o nome da Cidade 1:\n"); scanf("%s",&bus_cid1); fflush(stdin); } printf("Leia o nome da Cidade 2:\n"); scanf("%s",&bus_cid2); while ((cid2=buscaCidade(bus_cid2))==-1) // essa função deve retornar -1 se não achar a cidade ou { printf("Leia o nome da Cidade 2:\n"); scanf("%s",&bus_cid2); fflush(stdin); } printf("Leia o nome do tipo do veiculo:\n"); scanf("%s",&bus_vel); while ((vel=buscaCidade(bus_vel))==-1) // essa função deve retornar -1 se não achar a cidade ou { printf("Leia o nome do tipo do veiculo:\n"); scanf("%s",&bus_vel); fflush(stdin); } system('cls'); //Consulta- Escrita do resultado printf("O tempo em minutos e de: %d\nDigite \"fim\" para sair ou o nome de uma das cidades para uma nova consulta.\n",mat[cid1][cid2][vel]); } e aqui está o Código da minha função buscaVeiculo: int buscaVeiculo(char nome[21]) { int x; x=-1; if(strcmp(nome,"carro")==0) x=0; if(strcmp(nome,"onibus")==0) x=1; if(strcmp(nome,"caminhao")==0) x=2; return (x); } todas as variáveis da int main() estão corretamente declaradas. espero que possam me ajudar.... xD :D
-
ow então ... eu fiz a mudança no codigo .. da maneira que você me informou ... mais o problema permanece.... O programa não sai do Laço do WHILE... porque ...a função buscaVeiculo() está sempre retornando o valor -1...
-
Ow Kandrade!!! Vlw... isso agora funcionou... mais surgiu outro problema... na execução do programa completo... porque também... existe uma outra função: int buscaVeiculo(char nome[21]) { int x; x=-1; if(nome=="carro") x=0; if(nome=="onibus") x=1; if(nome=="caminhao") x=2; return (x); } e ela é chamada neste trecho: printf("Leia o nome do tipo do veiculo:\n"); scanf("%s",&bus_vel); while ((vel=buscaCidade(bus_vel))==-1) // essa função deve retornar -1 se não achar a cidade ou { printf("Leia o nome do tipo do veiculo:\n"); scanf("%s",&bus_vel); fflush(stdin); } E o problema é que esta função está sempre retornando o valor -1, você sab o que está acontecendo?
-
Oi.. Então... cidades é um um vetor de String char cidades[4][21], onde [4] representa a parte do vetor e [21] representa o char ... e ela é preenchida através desse codigo: for(i=0;i<=3;i++) { //Preciso previnir que nome de duas cidades sejam iguais!!!! scanf("%s",cidades[i]); } me ajuda ai!!!
-
Oi. Eu estou fazendo um programa que faz consultas dentro de um vetor(array). Onde o usuário digita o nome ...e se o nome não estiver dentro de nenhuma das variáveis do vetor ... a função deve retornar -1, mas o problema é que a função sempre retorna -1, mesmo quando eu digito um nome que exixte dentro do vetor. vocês podem me ajudar? Aqui está o codigo da parte da consulta: //Consultas // Problema na parte da consulta.... a função buscaCidade está sempre retornando -1. bus_cid1[21]=' '; printf("Leia o nome da Cidade 1:\n"); while (scanf("%s",bus_cid1) && strcmp(bus_cid1,"fim")!=0) { fflush(stdin); while ((cid1=buscaCidade(bus_cid1))==-1) // essa função deve retornar -1 se não achar a cidade ou { printf("Leia o nome da Cidade 1:\n"); scanf("%s",&bus_cid1); fflush(stdin); } printf("Leia o nome da Cidade 2:\n"); scanf("%s",&bus_cid2); while ((cid2=buscaCidade(bus_cid2))==-1) // essa função deve retornar -1 se não achar a cidade ou { printf("Leia o nome da Cidade 2:\n"); scanf("%s",&bus_cid2); fflush(stdin); } printf("Leia o nome do tipo do veiculo:\n"); scanf("%s",&bus_vel); while ((vel=buscaCidade(bus_vel))==-1) // essa função deve retornar -1 se não achar a cidade ou { printf("Leia o nome do tipo do veiculo:\n"); scanf("%s",&bus_vel); fflush(stdin); } Trecho de Código da função: int buscaCidade(char nome[21]) { int x,i; x=-1; for(i=0;i<4;i++) { if(nome==cidades[i]) x=i; } return (x); } valeu!!! Espero a resposta...