【问题标题】:Writing an array to a .dat file in C在 C 中将数组写入 .dat 文件
【发布时间】:2013-11-27 06:47:20
【问题描述】:

在循环的每次迭代中,我都需要将数组保存到 .dat 文件中。该数组表示一个 n x 1 向量,因此我希望格式为 .dat 文件的每行一个条目。

我知道如何将 .dat 文件读入 C 并保存到数组,但之前从未做过相反的事情,不幸的是,到目前为止我遇到的所有资源似乎都只显示了如何做前者。

【问题讨论】:

  • .dat 扩展没有特殊意义。它可以是一个简单的文本文件。
  • > "我知道如何将 .dat 文件读入 C" - 有什么问题?如果您的文件是二进制文件,只需 cnahge read()write(),如果是文本 - 将 scanf() 更改为 printf()

标签: c arrays


【解决方案1】:

在最简单的情况下,将数据输出到 *.dat 文件至少有两种变体:

  1. 用户友好的文本文件(必须是您的情况)。
  2. 原始二进制数据(你猜,这不是你的情况)。

在第一种情况下,您可以使用 stdio.h 中的 fprintf() 来输出数据:

#include <stdio.h>

int fprintf(FILE *stream, const char *format, ...);

因为您需要每行一个项目 - 您的格式可能类似于 "%d\n""%x" 等。 当然,在写入数据之前,您需要使用fopen() 打开输出文件:

FILE *fopen(const char *path, const char *mode);

之后你可以用fclose()关闭它:

int fclose(FILE *fp);

在第二种情况下,您可以只使用write()

#include <unistd.h>

ssize_t write(int fildes, const void *buf, size_t nbyte);

要打开文件描述符,您可以使用 open(const char *path, int oflag,...) 并关闭 - close(int fildes)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    相关资源
    最近更新 更多