1

我试过这个:

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    int out_fd = open("file.txt", O_WRONLY | O_CREAT, 0666);

    int i;
    scanf("%d", &i);

    char tmp[12]={0x0};
    sprintf(tmp,"%11d", i);

    write(out_fd, tmp, sizeof(tmp));

    close(out_fd);
    return 0;
}

但它会在我的文件中写入一些垃圾:

在此处输入图像描述

有没有什么好方法可以使用文件描述符将数字(浮点数、整数、双精度数)写入文件并写入?谢谢

谢谢各位,解决了:

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
    int out_fd = open("plik.txt", O_WRONLY | O_CREAT, 0666);

    int i;
    scanf("%d", &i);

    char tmp[1]={0x0};
    sprintf(tmp,"%d", i);

    write(out_fd, tmp, strlen(tmp));

    close(out_fd);
    return 0;
}
4

1 回答 1

4

您需要替换sizeof()strlen()以获取要写入的字符串的实际长度。例如: write(out_fd, tmp,strlen(tmp));

于 2013-01-29T11:33:53.093 回答