C программа для чтения файла CSV с помощью fscanf
En este post teenmos:
- Archivo CSV
- Archivo en C con fscanf, lee directamente las variables de las lineas del archivo
- Resultado en Consola
----------------------------------------------
----------------------------------------------
El archivo en CSV es:
----------------------------------------------
----------------------------------------------
----------------------------------------------
#,ID,Nombre,Apellidos,Altura,Peso,Sexo
1,1007108199,Carlos,Londoño,1.7,63,Masculino2,1017269056,Santiago,Suarez,1.71,70,Masculino
3,1193131583,Juli n,Zapata Guti‚rrez,1.7,80,Masculino
4,1234643466,Juan Sebastian,Rodriguez Cardona,1.7,65,Masculino
5,1017180877,Hector ,Ramirez,1.72,68,masculino
6,1035922621,Sebastian,Molina,1.81,78,Masculino
7,1193275962,Juan,Ossa,1.66,60,Masculino
8,1020487219,Luis µngel,Ram¡rez,1.76,68,Masculino
9,1035442744,Cristian david,Montes castaño,1.82,71,Masculino
10,1017225274,John,Estrada ,1.77,76,Masculino
11,1039473649,Bryan ,Ortiz,1.75,70,Masculino
12,1005856597,Helian ,Moreno,1.74,65,Masculino
13,1001236309,Mateo,L¢pez P‚rez,1.86,83,Masculino
14,1017271133,Sebastian,Arboleda Martinez,1.78,65,Masculino
15,1001233950,Juan Fernando,Arboleda,1.71,65,Masculino
16,43221494,Astrid,Arboleda ,1.7,52,Femenino
17,1003291166,Andres,Mendoza Gonzalez,1.75,66,Masculino
18,1005679318,Alex ,Baldovino,1.78,70,masculino
19,1020467588,Cristian,Cabrera,1.78,70,Masculino
20,1035441229,Sebastian,Cuencar Cardona,1.75,68,Masculino
21,1018352086,Maria Yeniffer,Arango Montoya,1.56,57,Femenino
22,1001741212,jose ricardo,palacio rios,1.71,63,Masculino
23,1152472402,Julian Mateo,Noreña Ramirez,1.76,84,Masculino
24,1002065482,Diego Fernando,Taborda Arango,1.71,86,Masculino
25,1039475603,Valentina,Arredondo ,1.75,58,Femenino
26,1027888770,Andres Ferney,Buitrago Suarez,1.81,72,Maculino
27,1000869689,Daniel Alexander,Serna Eusse,1.68,57,Masculino
28,1193069203,Jair Armando,Camacho Bonilla,1.78,62,Masculino
29,1017265093,Jhonny ,Hernandez,1.67,53,Masculino
30,18253192,Santiago,Uribe,1.71,90,Masculino
----------------------------------------------
----------------------------------------------
El programa en C es:
----------------------------------------------
----------------------------------------------
/* clase155.c
Description: Read a CSV File and show output
Autor: Alexander Arias
Date: April 13, 2020
*/
#include <stdio.h>
#define NUMFILAS 31
int main(void) {
FILE *archivo;
char n[NUMFILAS][4],ID_str[NUMFILAS][11],Nombre[NUMFILAS][31],Apellidos[NUMFILAS][31],Altura[NUMFILAS][7],Peso[NUMFILAS][5],Sexo[NUMFILAS][10];
float f;
int i;
printf("Programa para leer un Archivo CSV\n");
archivo = fopen("2019-1 Archivo Clase 52.csv","r");
//Adicionar caracter nulo al final de cada cadena
for(i=0;i<NUMFILAS;i++){
n[i][3]=0;
ID_str[i][10]=0;
Nombre[i][30]=0;
Apellidos[i][30]=0;
Altura[i][6]=0;
Peso[i][4]=0;
Sexo[i][9]=0;
}
fscanf(archivo,"%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%s\n",n[0],ID_str[0],Nombre[0],Apellidos[0],Altura[0],Peso[0],Sexo[0]);
printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",n[0],ID_str[0],Nombre[0],Apellidos[0],Altura[0],Peso[0],Sexo[0]);
printf("%s\n",n[0]);
printf("%s\n",ID_str[0]);
printf("%s\n",Nombre[0]);
printf("%s\n",Apellidos[0]);
printf("%s\n",Altura[0]);
printf("%s\n",Peso[0]);
printf("%s\n",Sexo[0]);
for(i=1;i<NUMFILAS;i++){
fscanf(archivo,"%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%s\n",n[i],ID_str[i],Nombre[i],Apellidos[i],Altura[i],Peso[i],Sexo[i]);
}
//printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t\n",n[1],ID_str[1],Nombre[1],Apellidos[1],Altura[1],Peso[1],Sexo[1]);
for(i=0;i<NUMFILAS;i++){
printf("%2s\t%10s\t%-20s\t%-20s\t%6s\t%4s\t%-9s\n",n[i],ID_str[i],Nombre[i],Apellidos[i],Altura[i],Peso[i],Sexo[i]);
}
fclose(archivo);
return 0;
}
----------------------------------------------
----------------------------------------------
El resultado en consola es:
----------------------------------------------
----------------------------------------------
clang version 7.0.0-3~ubuntu0.18.04.1 (tags/RELEASE_700/final)
clang-7 -pthread -lm -o main main.c
./main
Programa para leer un Archivo CSV
# ID Nombre Apellidos Altura Peso Sexo
#
ID
Nombre
Apellidos
Altura
Peso
Sexo
# ID Nombre Apellidos Altura Peso Sexo
1 1007108199 Carlos Londo�o 1.7 63 Masculino
2 1017269056 Santiago Suarez 1.71 70 Masculino
3 1193131583 Juli�n Zapata Guti�rrez 1.7 80 Masculino
4 1234643466 Juan Sebastian Rodriguez Cardona 1.7 65 Masculino
5 1017180877 Hector Ramirez 1.72 68 masculino
6 1035922621 Sebastian Molina 1.81 78 Masculino
7 1193275962 Juan Ossa 1.66 60 Masculino
8 1020487219 Luis �ngel Ram�rez 1.76 68 Masculino
9 1035442744 Cristian david Montes casta�o 1.82 71 Masculino
10 1017225274 John Estrada 1.77 76 Masculino
11 1039473649 Bryan Ortiz 1.75 70 Masculino
12 1005856597 Helian Moreno 1.74 65 Masculino
13 1001236309 Mateo L�pez P�rez 1.86 83 Masculino
14 1017271133 Sebastian Arboleda Martinez 1.78 65 Masculino
15 1001233950 Juan Fernando Arboleda 1.71 65 Masculino
16 43221494 Astrid Arboleda 1.7 52 Femenino
17 1003291166 Andres Mendoza Gonzalez 1.75 66 Masculino
18 1005679318 Alex Baldovino 1.78 70 masculino
19 1020467588 Cristian Cabrera 1.78 70 Masculino
20 1035441229 Sebastian Cuencar Cardona 1.75 68 Masculino
21 1018352086 Maria Yeniffer Arango Montoya 1.56 57 Femenino
22 1001741212 jose ricardo palacio rios 1.71 63 Masculino
23 1152472402 Julian Mateo Nore�a Ramirez 1.76 84 Masculino
24 1002065482 Diego Fernando Taborda Arango 1.71 86 Masculino
25 1039475603 Valentina Arredondo 1.75 58 Femenino
26 1027888770 Andres Ferney Buitrago Suarez 1.81 72 Maculino
27 1000869689 Daniel Alexander Serna Eusse 1.68 57 Masculino
28 1193069203 Jair Armando Camacho Bonilla 1.78 62 Masculino
29 1017265093 Jhonny Hernandez 1.67 53 Masculino
30 18253192 Santiago Uribe 1.71 90 Masculino
No hay comentarios:
Publicar un comentario