【发布时间】:2011-05-24 08:36:52
【问题描述】:
我需要将数组的内容写入文件。假设我生成随机数并将它们放入一个数组中。如何将这些值复制到输出文件中?
[... previous code/declarations ...]
file = open(filename, O_WRONLY|O_CREAT|O_TRUNC, S_IRWXU|S_IWGRP|S_IWOTH);
buffer = (double *) calloc(d, sizeof(double));
for (i = 0; i < d; i++)
{
double div = (double) (RAND_MAX/0.333);
double r = rand()/div;
(*(buffer+i)) = r;
}
write(file, buffer, sizeof(double));
[ ... ]
如果我尝试读取文件,我看到的只是内存垃圾,屏幕上到处都是无意义的字符。谁能帮我弄清楚我做错了什么?
【问题讨论】:
-
当您说“读取文件”时,您的意思是使用 cat 吗?如果您使用 read 或 fread 阅读它们,您会看到这些值是完全合理的(尽管是随机的)值。如果您想从终端查看内容,请尝试使用 xxd 而不是 cat。
标签: c system-calls