不可能做类似fputs(4, fptOut);
的东西,因为fputs不喜欢整数。我该如何解决这个问题?用fputs()编写一个整数到一个文件
做fputs("4", fptOut);
不是一个选项,因为我正在使用计数器值。
不可能做类似fputs(4, fptOut);
的东西,因为fputs不喜欢整数。我该如何解决这个问题?用fputs()编写一个整数到一个文件
做fputs("4", fptOut);
不是一个选项,因为我正在使用计数器值。
fprintf(fptOut, "%d", counter);
提供的答案是正确的。但是,如果您打算使用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;
}
我知道⑥年太久晚,但如果你真的想使用fputs
char buf[12], *p = buf + 11;
*p = 0;
for (; n; n /= 10)
*--p = n % 10 + '0';
fputs(p, fptOut);
还应注意这是出于教育的目的,你应该坚持fprintf
。
[48是什么?](https://en.wikipedia.org/wiki/EBCDIC#Codepage_layout) – 2016-12-07 04:54:22
@Andrew Henle 48是数字0的ASCII十进制代码。它将数字转换为ASCII形式。当使用'printf(“%d”)时,内部每个数字都加上48 [ – 2016-12-07 05:13:43
]为什么你一味地假设ASCII?没有点击我提供的链接,是吗? – 2016-12-07 14:57:39
很好地工作,谢谢。 – Pieter 2010-02-09 13:55:17