2010-02-09 42 views
5

Không thể làm điều gì đó như fputs(4, fptOut); bởi vì fputs không thích số nguyên. Làm thế nào tôi có thể làm việc xung quanh điều này?Viết một số nguyên vào một tập tin có fputs()

Làm fputs("4", fptOut); không phải là tùy chọn vì tôi đang làm việc với giá trị bộ đếm.

Trả lời

12

gì về

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

Tài liệu của fprintf thể được tìm thấy here.

+0

Hoạt động tốt, cảm ơn. – Pieter

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

Câu trả lời được cung cấp là chính xác. Tuy nhiên, nếu bạn có ý định sử dụng fputs, thì bạn có thể chuyển đổi số của bạn thành chuỗi bằng sprintf trước. Một cái gì đó như thế này:

#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

Tôi biết 6 năm quá muộn nhưng nếu bạn thực sự muốn sử dụng fputs

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

cũng nên lưu ý đây là cho mục đích giáo dục, bạn nên gắn bó với fprintf.

+0

[Cái gì là '48' cho?] (Https://en.wikipedia.org/wiki/EBCDIC#Codepage_layout) –

+0

@Andrew Henle 48 là mã thập phân ASCII cho chữ số 0. Điều này chuyển đổi chữ số thành dạng ASCII của nó . 48 được thêm vào mỗi chữ số trong nội bộ khi sử dụng 'printf ("% d ")' –

+0

Tại sao bạn giả sử một cách mù quáng ASCII? Không nhấp vào liên kết tôi đã cung cấp, phải không? –

Các vấn đề liên quan