PerguntasScript Postado Setembro 28, 2015 Denunciar Share Postado Setembro 28, 2015 (editado) Ele executa, mais na tela não aparece nada! #include <iostream> #include <time.h> /* Função format - Retornar um ponteiro para uma variavel do tipo char com o valor da conversão */ char *format(int number){ char *retorno; char ret[100]; if (number < 10){ sprintf(ret,"0%d",number); /* Retorna o resultado em uma variável */ retorno = ret; return retorno; } else { sprintf(ret,"%d",number); retorno = ret; return retorno; } } /* Fim Função Format */ /* Função que retorna a hora */ char *hora(void){ int hora; int minuto; int segundo; char varHora[100]; char varMinuto[100]; char varSegundo[100]; char varHoraFormatada[100]; char *retornoHoraFormatada; struct tm *local; time_t t; t = time(NULL); local = localtime(&t); /* Obter hora, minuto e segundo e os alocar em uma variavel do tipo */ hora = local -> tm_hour; minuto = local -> tm_min; segundo = local -> tm_sec; /* Converter os valores retornados pelos ponteiros da função em variaveis do tipo char */ sprintf(varHora,"%s",format(hora)); sprintf(varMinuto,"%s",format(minuto)); sprintf(varSegundo,"%s",format(segundo)); /* criar a variavel de retorno dos dados e cria um ponteiro para essa variavel */ sprintf(varHoraFormatada,"%s:%s:%s",varHora,varMinuto,varSegundo); /* Retorna hora no formato hh:mm:ss com um ponteiro */ retornoHoraFormatada = varHoraFormatada; return retornoHoraFormatada; } /* Fim Função Hora */ int main(){ char horaSistema[100]; sprintf(horaSistema,"%s",hora()); printf("%s\n",horaSistema); } /* Mudar o Fuso Horário */ Editado Fevereiro 16, 2016 por PerguntasScript Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Setembro 29, 2015 Denunciar Share Postado Setembro 29, 2015 ao parecer o sprintf dentro de main da problemas na hora de asignar o valor de retorno a funçao hora o string horaSistema. Eu troquei sprintf ( horaSistema, "%s", hora() ); por strcpy(horaSistema,(char*)hora()); e funcionou corretamente, mas não sei por que isso. #include <iostream> #include <string.h> #include <time.h> /* Função format - Retornar um ponteiro para uma variavel do tipo char com o valor da conversão */ char *format ( int number ) { char *retorno; char ret[100]; if ( number < 10 ) { sprintf ( ret, "0%d", number ); /* Retorna o resultado em uma variável */ retorno = ret; return retorno; } else { sprintf ( ret, "%d", number ); retorno = ret; return retorno; } } /* Fim Função Format */ /* Função que retorna a hora */ char *hora ( void ) { int hora; int minuto; int segundo; char varHora[100]; char varMinuto[100]; char varSegundo[100]; char varHoraFormatada[100]; char *retornoHoraFormatada; struct tm *local; time_t t; t = time ( NULL ); local = localtime ( &t ); /* Obter hora, minuto e segundo e os alocar em uma variavel do tipo */ hora = local -> tm_hour; minuto = local -> tm_min; segundo = local -> tm_sec; /* Converter os valores retornados pelos ponteiros da função em variaveis do tipo char */ sprintf ( varHora, "%s", format ( hora ) ); sprintf ( varMinuto, "%s", format ( minuto ) ); sprintf ( varSegundo, "%s", format ( segundo ) ); /* criar a variavel de retorno dos dados e cria um ponteiro para essa variavel */ sprintf ( varHoraFormatada, "%s:%s:%s", varHora, varMinuto, varSegundo ); /* Retorna hora no formato hh:mm:ss com um ponteiro */ retornoHoraFormatada = varHoraFormatada; return (char*)retornoHoraFormatada; } /* Fim Função Hora */ int main() { char horaSistema[100]; //sprintf ( horaSistema, "%s", hora() ); strcpy(horaSistema,(char*)hora()); printf ( "%s\n", horaSistema ); std::cin.ignore(); return 0; }/* Mudar o Fuso Horário */Prove e me diga si funciona. o programa retorna um string com a hora atual do sistema, nada mais. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 PerguntasScript Postado Setembro 29, 2015 Autor Denunciar Share Postado Setembro 29, 2015 Obrigado! Funcionou corretamente! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
PerguntasScript
Ele executa, mais na tela não aparece nada!
#include <iostream>
#include <time.h>
/* Função format - Retornar um ponteiro para uma variavel do tipo char com o valor da conversão */
char *format(int number){
char *retorno;
char ret[100];
if (number < 10){
sprintf(ret,"0%d",number); /* Retorna o resultado em uma variável */
retorno = ret;
return retorno;
} else {
sprintf(ret,"%d",number);
retorno = ret;
return retorno;
}
} /* Fim Função Format */
/* Função que retorna a hora */
char *hora(void){
int hora;
int minuto;
int segundo;
char varHora[100];
char varMinuto[100];
char varSegundo[100];
char varHoraFormatada[100];
char *retornoHoraFormatada;
struct tm *local;
time_t t;
t = time(NULL);
local = localtime(&t);
/* Obter hora, minuto e segundo e os alocar em uma variavel do tipo */
hora = local -> tm_hour;
minuto = local -> tm_min;
segundo = local -> tm_sec;
/* Converter os valores retornados pelos ponteiros da função em variaveis do tipo char */
sprintf(varHora,"%s",format(hora));
sprintf(varMinuto,"%s",format(minuto));
sprintf(varSegundo,"%s",format(segundo));
/* criar a variavel de retorno dos dados e cria um ponteiro para essa variavel */
sprintf(varHoraFormatada,"%s:%s:%s",varHora,varMinuto,varSegundo);
/* Retorna hora no formato hh:mm:ss com um ponteiro */
retornoHoraFormatada = varHoraFormatada;
return retornoHoraFormatada;
} /* Fim Função Hora */
int main(){
char horaSistema[100];
sprintf(horaSistema,"%s",hora());
printf("%s\n",horaSistema);
}
/* Mudar o Fuso Horário */
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.