Creé un archivo .ini básico llamado configuration.ini . Este archivo tiene el siguiente aspecto:
[Application] no_of_applications= 4; [states] title = "Config File States available"; name = 'Active, Deactivated, Hot'; [reaction] reac_type = ["switch_schedule", "activate_app", "disable_app"; Ahora tengo la intención de leer este archivo .ini de mi programa C. Incluí la línea #include <configuration.ini> en mi programa C. Solo quiero leer el título de la sección 'estados' en el programa C, es decir
#include<stdio.h> #include<configuration.ini> int main() { //read the variable 'title' from 'states' and print it return 0; }¿Alguien puede decirme cómo puedo hacer eso?
Suponiendo que está utilizando Windows, puede trabajar de esta manera:
Primero incluya Windows.h
#include <Windows.h> En su función, cree un LPCSTR (¿eh? ¿En serio? Sí).
LPCSTR ini = "C:\\config.ini"; Y llame a GetPrivateProfileString :
char returnValue[100]; GetPrivateProfileString("states", "title", 0, returnValue, 100, ini);Bueno, antes que nada, no #include el archivo .ini . No piensa lo que crees que hace. #include <fname> en realidad agrega el contenido del archivo fname al archivo actual, que no es lo que desea. Elimina el #include .
En segundo lugar, ya sea .ini o algo más, si tiene texto formateado, siempre puede usar el siguiente algoritmo para leer el archivo.
fopen() . Comprobar contra errores.fgets() . Compruebe el éxito."[states]" . Es posible que desee deshacerse de la newline final leída por fgets() primero.strtok() .title aquí. Puede usar strcmp() .