DaniCV Posted November 14, 2016 at 08:45 PM Report #600518 Posted November 14, 2016 at 08:45 PM Tendo como base: Citação Faça um programa que: 1. Lê de um ficheiro "temperaturas_F.txt" (que disponibilizo em baixo) valores de temperatura em graus Fahrenheit de várias capitais. O nome de cada capital é armazenado num vetor "vetor_capitais", e o valor de temperatura é armazenado num vetor "vetor_temp_F". 2. Para cada valor de temperatura, o programa recorre a um subprograma que converte a temperatura para graus Celcius. O subprograma retorna o valor em Celcius, que é armazenando num segundo vetor (vetor_temp_C). 3. Escreve num ficheiro "temperaturas_C.txt" os nomes das capitais com a temperatura em Celcius. Já realizei este código, neste momento não estou a conseguir obter os valores numéricos de cada linha do txt que surge assim: Cidade Temp em F Expl.: Lisboa 59 Brasília 76 Luanda 76 Maputo 72 Macau 72 Praia 77 Bissau 77 Goa 73 #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> int contaLinhas(); main (void) { int linhas=contaLinhas(), i; int vetor_temp_F[linhas], vetor_temp_C[linhas]; char vetor_capitais[linhas]; FILE * fr; fr = fopen("temperaturas_F.txt", "r"); FILE*frw; frw= fopen("temperaturas_C.txt", "w"); if(fr == NULL) { perror("temperaturas_F.txt"); return 1; } else{ for(i=0; i<linhas;i++){ fgets (vetor_capitais, 50, fr); fprintf(frw,"%s", vetor_capitais); char *p = strchr(vetor_capitais, ' '); if (!p); *p = 0; printf("%s\n", vetor_capitais); } } fclose(fr); return 0; } int contaLinhas() { FILE * fr; int contador=1; char ch; fr = fopen("temperaturas_F.txt", "r"); if(fr == NULL) { perror("temperaturas_F.txt"); return 1; } else{ while( (ch=fgetc(fr))!= EOF ) if(ch == '\n') contador++; return contador; fclose(fr); } }
HappyHippyHippo Posted November 14, 2016 at 09:16 PM Report #600519 Posted November 14, 2016 at 09:16 PM a maneira mais simples de ler/interpretar uma string em memória é através da função sscanf: char * str = "capital 50"; char capital[50]; int temperatura; sscanf (str, "%s %d", capital, &temperatura); 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now