Bon, on s'en doutait, le Tawainais allait encore faire des siennes ^^ En regardant toujours une partie du code, je suis tombé sur une façon que je trouve assez originale pour écrire un fichier XML... Ca se décompose en 2 parties :

1. Tout en haut du fichier de sources, on trouve la déclaration des chaines de caractères. Pour des questions évidentes je mets n'importe quoi dans les balises, ce n'est pas important ^^

char line1[] = "<balise1 val=\"%i\">\n";
char line2[] = "    <balise2.....>\n";
char line3[] = "        plein de blabla\n";
char line4[] = "    </balise2.....>a\n";
...
...
char line12[]  = "</balise1>\n";

Donc ça c'est pour l'ouverture des festivités. Bon, il aurait pu faire un vrai tableau plutôt que de numéroter les variables, mais pourquoi pas ^^

2. Le code d'écriture à proprement parler. Là il a fait une chose que je trouve particulièrement intéressante... A noter que pour une fois je n'ai pas renommé les variables puisque de toute façon on ne peut pas savoir à quoi elles correspondent ^^

void writeXML(...)
{
	char buffer[256];
	FILE *f;
	
	un peu de code d'init, ouverture du fichier, etc... 
	ça met des variables à certaines valeurs
	
	
	// Write XML file
	memset(buffer, 0, 256);
	sprintf(buffer, line1, val1);
	fwrite(buffer, 1, strlen(buffer), f);
	
	memset(buffer, 0, 256);
	sprintf(buffer, line2, val2);
	fwrite(buffer, 1, strlen(buffer), f);
    
	memset(buffer, 0, 256);
	sprintf(buffer, line3, val3a, val3b);
	fwrite(buffer, 1, strlen(buffer), f);
    
	...
	...
	
	memset(buffer, 0, 256);
	sprintf(buffer, line12, val12);
	fwrite(buffer, 1, strlen(buffer), f);
}

Pour des questions de lisibilité je n'ai pas mis tout le code, bien entendu, mais on comprend bien le principe ^^ Je ne vous ferez pas l'affront de signaler ce que je trouve choquant (et il y a plusieurs choses "originales" ^^).