【发布时间】:2011-01-14 19:43:51
【问题描述】:
不可能做像fputs(4, fptOut); 这样的事情,因为 fputs 不喜欢整数。我该如何解决这个问题?
fputs("4", fptOut); 不是一个选项,因为我正在使用计数器值。
【问题讨论】:
不可能做像fputs(4, fptOut); 这样的事情,因为 fputs 不喜欢整数。我该如何解决这个问题?
fputs("4", fptOut); 不是一个选项,因为我正在使用计数器值。
【问题讨论】:
fprintf(fptOut, "%d", counter);
【讨论】:
我知道为时已晚 6 年,但如果你真的想使用 fputs
char buf[12], *p = buf + 11;
*p = 0;
for (; n; n /= 10)
*--p = n % 10 + '0';
fputs(p, fptOut);
还应注意这是出于教育目的,您应该坚持使用fprintf。
【讨论】:
printf("%d")时,每个数字在内部添加48@
fprintf("%d")。读者应该也能看出,盲目地使用这段代码也会破坏n。
提供的答案是正确的。但是,如果您打算使用 fputs,那么您可以先使用 sprintf 将您的数字转换为字符串。像这样的:
#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;
}
【讨论】:
怎么样
fprintf(fptOut, "%d", yourCounter); // yourCounter of type int in this case
fprintf的文档可以在here找到。
【讨论】: