C编程:write()问题
|
我需要将数组的内容写入文件。假设我生成随机数并将其放入数组中。如何将这些值复制到输出文件中?
[... 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));
[ ... ]
如果我尝试读取文件,那么我看到的只是这个内存垃圾,整个屏幕上都是乱七八糟的字符。谁能帮我弄清楚我做错了什么吗?
没有找到相关结果
已邀请:
4 个回复
坍锭嘉韭蓝
调用用于将内存块写入文件,如果您稍后尝试仅输出文件,则大多数情况下这似乎是垃圾。那是因为它们很可能是IEEE754二进制表示形式。 如果要数字的文本表示,请使用类似以下内容的方法:
娠侈脚惮顽
瓜唱鬼
您只写一个值,而不是整个数组。将大小乘以
(这似乎是数组中元素的数量)。
诧不达
循环内?