Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 06/18/2021 in all areas

  1. Olá Ana, O ctime retorna um ponteiro para uma string static, nome precisa de ser char *. Mas aconselho-te já a evitares usar o ctime neste exemplo: Não tens controlo do formato que é sempre: "Www Mmm dd hh:mm:ss yyyy\n" Os carateres ':' e '\n' são proibidos em filenames em windows (':' em mac), mas mesmo em linux que suporta ambos, é mau gosto usares o '\n'. Aconselho-te vivamente a usares strftime, por poderes controlar o formato que melhor desejares. Tens aqui um exemplo de como obter a mesma informação com esta função: time_t ddh = time(NULL); struct tm * tm = localtime(&ddh); char nome[64]; strftime(nome, 64 - 1, "%a %b %e %H.%M.%S %Y", tm); ______________ > scanf("%s",dados_cliente.nome); Deves ter cuidado com buffer overflows, especialmente com buffers tão pequeninos. Em vez de "%s", podes usar "%9[^ \n]". Mas de preferência usa fgets. > scanf("%.2f", dados_cliente.valor); Não podes usar especificador de precisão no scanf. E falta-te o & no argumento. > dados= fopen(nome+".dat", "ab"); Em C não podes concatenar strings com o operador +. Tens que usar strcat por exemplo. E caso queiras continuar a usar o ctime, não podes concatenar para dentro de `nome` porque a memoria dessa string não te pertence. Terás que fazer strcpy para um buffer teu e só depois strcat(buf, ".dat"); Abrires em modo append também é um pouco inesperado já que é um bocado dificil existir um ficheiro com a data atual, a não ser que estejas a trabalhar com timings críticos 😄 > fprintf(dados, ... O fprintf está pensado para ser usado para ficheiros de texto, não binários. A não ser que saibas exatamente o que estás a fazer, deves usar fwrite para escrever para ficheiros binários.
    2 points
  2. Não existe um "comando" que faça a percentagem de votos. Isso é calculado matematicamente, cuja fórmula terás de traduzir para código. Dados n candidatos, onde cada candidato teve v votos, a percentagem de votos de cada candidato é dada por v / n * 100. function percentagem(votos, n : integer) : real; begin percentagem := votos / n * 100; end; Cumprimentos.
    1 point
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.