Reputation: 32805
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.
Upvotes: 12
Views: 99027
Reputation: 9274
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
.
Upvotes: 2
Reputation: 5887
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;
}
Upvotes: 6