Prog C : génération d'enregistrements à longueur constante

La même instruction d’écriture ne génère pas le même résultat selon que le fichier dans lequel j’écris se trouve sur mon disque dur ou sur un périphérique externe !
Je cherche la bonne syntaxe qui marche dans les deux cas pour compléter chaque ligne de caractères par des espaces en bout de chaîne (à droite). Est-ce résoluble par un format d’écriture unique ? Ex sprintf(ligne,“ANNEE:20%02d%-40s”,vrai_year,blancs) pour générer ne ligne de 50 caractères cadrés à gauche et complétés par des espaces …

Je ne pense pas que ce soit lié à l’emplacement du fichier…

S’il doit y avoir des différences, il faut les chercher au niveau du compilateur (ex: g++ vs MSVC le compilateur de MS).

Tu as aussi la solution bourrin de créer une chaîne avec 50 espaces:

char s[51] = {0};
memset(s, 50, ' ');
s[50] = 0;

(mon C est un peu rouillé).