Writing an integer to a file with fputs()

2020-03-01 17:59发布

问题:

It's not possible to do something like fputs(4, fptOut); because fputs doesn't like integers. How can I work around this?

Doing fputs("4", fptOut); is not an option because I'm working with a counter value.

回答1:

What about

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

Documentation of fprintf can be found here.



回答2:

The provided answers are correct. However, if you're intent on using fputs, then you can convert your number to a string using sprintf first. Something like this:

#include <stdio.h>
#include <stdint.h>

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;
}


回答3:

fprintf(fptOut, "%d", counter); 


回答4:

I know 6 years too late but if you really wanted to use fputs

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

Should also note this is for educational purpose, you should stick with fprintf.



标签: c file integer