Écrire un entier dans un fichier avec fputs ()

Il n’est pas possible de faire quelque chose comme fputs(4, fptOut); parce que fputs n’aime pas les entiers. Comment puis-je contourner cela?

Faire des fputs("4", fptOut); n’est pas une option parce que je travaille avec une valeur de compteur.

Qu’en est-il de

 fprintf(fptOut, "%d", yourCounter); // yourCounter of type int in this case 

La documentation de fprintf peut être trouvée ici .

Les réponses fournies sont correctes. Cependant, si vous souhaitez utiliser fputs, vous pouvez d’abord convertir votre nombre en chaîne en utilisant sprintf. Quelque chose comme ça:

 #include  #include  int main(int argc, char **argv){ uint32_t counter = 4; char buffer[16] = {0}; FILE * fptOut = 0; /* ... code to open your file goes here ... */ sprintf(buffer, "%d", counter); fputs(buffer, fptOut); return 0; } 
 fprintf(fptOut, "%d", counter); 

Je sais 6 ans trop tard, mais si vous vouliez vraiment utiliser des fputs

 char buf[12], *p = buf + 11; *p = 0; for (; n; n /= 10) *--p = n % 10 + '0'; fputs(p, fptOut); 

Notez également que ceci est à des fins éducatives, vous devriez vous en tenir à fprintf .