Leer y extraer valores de CSV con C++

Leer CSV con C++

En este artículo de programación en C++ (también conocido como CPP) te enseñaré a leer y parsear un archivo CSV (valores separados por coma) para leer todo su contenido, sin usar librerías externas.

Para ello vamos a necesitar leer el archivo línea por línea y luego separar cada línea según el delimitador. Todo esto lo vamos a hacer con C++ y funciones nativas.

Algoritmo

Analicemos primero lo que tenemos que hacer. Vamos a leer un CSV con C++ así que primero necesitamos abrir el archivo y leerlo línea por línea, ya que en cada línea hay un nuevo conjunto de valores.

En este caso vamos a omitir la primera línea, pues normalmente ella tiene el encabezado; pero una vez que la hemos leído procedemos a leer las demás hasta el final del archivo en un ciclo.

Dentro de este ciclo vamos a separar la cadena (línea) según el delimitador, que en este caso es la coma. Y después de eso ya podemos extraer cada valor en una variable aparte y hacer cualquier cosa con ella como imprimirla o escribirla en otro archivo.

El archivo CSV

Para este ejemplo voy a usar un CSV que ha exportado un sistema de ventas gratis que publiqué hace algún tiempo, mismo que se ve así:

Si quieres puedes verlo en su versión raw aquí. Como puedes ver, contamos con 4 filas y en cada una de ellas existen 7 columnas.

Es importante que el CSV tenga una estructura definida y consistente. Ahora veamos el código.

Nota: vamos a leer el archivo y vamos a tratar todos los datos como cadena. Ya después tú puedes convertirlos a double, int, etcétera.

Leer CSV con C++

Leer y extraer valores de CSV con C++
Leer y extraer valores de CSV con C++

Ahora sí veamos el código. Primero abrimos el archivo y lo leemos:

Dentro del ciclo tendremos la línea, y es momento de separarla para almacenar sus valores. Como bien dice arriba, el delimitador es la coma. Entonces hacemos lo siguiente:

Como puedes ver, la extracción de los valores está desde la línea 4 hasta la línea 10, leemos de la línea y colocamos cada valor dentro de cada variable. Recuerda que debe ser en el mismo orden que tienen las columnas dentro del archivo CSV.

El código completo queda así:

Así es como se usa C++ para leer un CSV. Si gustas puedes probar el código en línea dentro de este enlace. También te invito a que leas más sobre Programación C++ / CPP en mi blog.

Si no te ha quedado claro, puedes repasar con un vídeo:

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario