C语言 关于文件fwrite问题,随机问题

来源:百度知道 编辑:UC知道 时间:2024/05/11 18:05:05
帮忙看一下下面的程序:随机产生10个整数,写入一个二进制文件中
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main ( )
{
int x[10],i,k;
FILE *fp2;
srand( (unsigned)time( NULL ) );
for (i=0;i<10;i++)
x[i]=rand();
fp2=fopen ("d:\\data2.dat","wb");
if(fp2==NULL)
{
printf("Open error \n");exit(0);
}
for(k=0;k<10;k++)
fwrite(&x[0],sizeof(int),1,fp2);
fclose (fp2) ;
}
fwrite括号里的格式我写的对么。。。
然后这个程序是写入二进制文件的,那么那个文件里的数据是不是看上去像乱码呢,但是我运行后出现的DAT文件里有十个一样的奇怪的字。。。
还有那个随机语句不是很懂也~

悬20追加30谢谢帮忙

srand( (unsigned)time( NULL ) );
srand函数是设置随机数的种子,计算机产生的随机数列实际上是伪随机数列,这样的随机数列由种子来控制,种子相同,数列就完全一致。
这里又调用了time函数,也就是用time函数的返回值作为随机数的种子。

用rand函数得到一个随机数。

2进制文件是无法向文本文件那样观看的,用记事本打开当然看到的是乱码

格式是对的,二进制文件本来打开就是乱码,呵呵。
srand()函数是一个随机数产生函数,其意思就是指C语言里的随机数都是由它来控制产生的