写入文件 - 整数

时间:2016-07-02 01:48:50

标签: c

我正在编写类似油漆的颜色 我必须在文件中保存unsigned int以保存用户绘制的内容,以便加载它(每个像素颜色为unsigned int,使用我使用的lib)。我只能用write()来做 我需要做的第一件事是,在文件中写下绘图的宽度。

  unsigned int *pixels;
  int FD;
  unsigned int width;

  width = pix->clipable.buffer.width;
  if (!filename) return (1);
  if ((FD = open(filename, O_WRONLY | O_CREAT, S_IRUSR)) == (-1)) 
    return (1);
  pixels = pix->pixels;
  write(FD, &width, sizeof(unsigned int));
  return (0);

当我执行printf("%u\n", width)时,宽度为1020 当我打开使用'nano filename'创建的文件时,它被写成'\374^C^@^@'

我真的不明白为什么:/

1 个答案:

答案 0 :(得分:0)

Nano是一个文本编辑器,当你打开它时,它会在你写一个整数(4个字节)时解释你写的4个字符(每个字节)。要测试这个,你需要编写一个程序来读取文件以查看你的int是否存在,或者使用十六进制编辑器并自己将字节转换为一个int来检查。