Leitura de arquivo texto separando as colunas
Publicado por euteste da silva (última atualização em 15/01/2013)
[ Hits: 10.318 ]
Fiz um programa C que faz a leitura de um arquivo e processa os valores da coluna. O arquivo entrada.txt tem o seguinte valor:
Codigo:Produto:Unidade:Preco
1:melao:1:2.50
2:laranja:2:0.50
3:uva:2:1.00
O programa faz a quebra da coluna quando encontra o caracter ":".
Eu espero que seja útil para alguém. =)
* Todo o programa foi feito utilizando o tinyC compiler.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> typedef struct reg { char codigo; char produto[20]; int unidade; float preco; float valor; } REGISTRO; #define MAX_LINE 100 main() { FILE *fp; char buf[100]; char *pstr; REGISTRO vetReg[MAX_LINE]; time_t localtime; int i,j; j=i=0; float soma=0; fp = fopen("entrada.txt","r"); if(!fp) exit(1); // Pula o cabecalho. fseek(fp,30,SEEK_SET); while((fgets(buf,100,fp)!=NULL) && (i<MAX_LINE)) { pstr = strtok(buf,":"); vetReg[i].codigo = *pstr; pstr = strtok(NULL,":"); strcpy(vetReg[i].produto,pstr); pstr = strtok(NULL,":"); vetReg[i].unidade = atoi(pstr); pstr = strtok(NULL,":"); vetReg[i].preco = atof(pstr); vetReg[i].valor = vetReg[i].unidade * vetReg[i].preco; soma+=vetReg[i].valor; ++i; } fclose(fp); localtime = time(NULL); printf(ctime(&localtime)); printf("\n"); printf("%s%10s%10s%10s%10s\n","Codigo","Produto","Unidade","Preco","Valor"); printf("%s%10s%10s%10s%10s\n","------","-------","-------","-----","-----"); for(j=0; j<i; j++) { printf("%c",vetReg[j].codigo); printf("%15s",vetReg[j].produto); printf("%10d",vetReg[j].unidade); printf("%10.2f",vetReg[j].preco); printf("%10.2f\n",vetReg[j].valor); } printf("----------------------------------------------\n"); printf("%42s%.2f\n","Total: ",soma); }
Gerenciamento de alunos com dados armazenados em arquivo
Programa CONSULTA/ PESQUISA/ ADICIONA/ EXCLUI registros em arquivos
Atualizar o macOS no Mac - Opencore Legacy Patcher
Crie alias para as tarefas que possuam longas linhas de comando - bash e zsh
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Instalando e usando o Dconf Editor, o "regedit" para Linux
Como instalar o navegador TOR no seu Linux
Instalando Zoom Client no Ubuntu 24.04 LTS
validando quandidade de leitura no read[DUVIDA] (2)
Qual a relevancia dos valores de bogomips com os Mhz e Ghz[DUVIDA] (4)
Jogar jogos do Win 10 no Ubuntu (6)
Som parou de funcionar depois de atualizar o kernel do Slackware 15 (1)
Encriptografa... as particoes com LUKS, o que poderia dar errado? (6)