2010-02-09 59 views

回答

12

什么

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

fprintf文件可以发现here

+0

很好地工作,谢谢。 – Pieter 2010-02-09 13:55:17

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

提供的答案是正确的。但是,如果您打算使用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; 
} 
1

我知道⑥年太久晚,但如果你真的想使用fputs

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

还应注意这是出于教育的目的,你应该坚持fprintf

+0

[48是什么?](https://en.wikipedia.org/wiki/EBCDIC#Codepage_layout) – 2016-12-07 04:54:22

+0

@Andrew Henle 48是数字0的ASCII十进制代码。它将数字转换为ASCII形式。当使用'printf(“%d”)时,内部每个数字都加上48 [ – 2016-12-07 05:13:43

+0

]为什么你一味地假设ASCII?没有点击我提供的链接,是吗? – 2016-12-07 14:57:39