最近在写一个验证的小程序,被多位数的存取难到了,研究了好几天,一无所获。
我想将一个6位的整型数据(如:123456)写入到一个新的文件中,我用fputc( )写入完成,可用fgetc( )调出来一看,都是错的,请教大侠,怎样才能正确的存储并读出6位数(当然,只要是多位数存取的就可以了),不甚感激。
C语言将整形数据存储到文件中,可采用两种方法,1、二进制存取 2、字符方式存取。
因存储方式的不同,读取也要采用相应的方式进行操作,否则不能正确得到存储的数据。
二进制存取
二进制方式是将原数据的内存格式存储到文件中,在同类型的机器上可以正确的读取。但如果换成不同类型的机器则会出现数据解释错误,因此,具有不可移植性。
这种方式,采用的存取函数相应为:fwrite()和fread().
如:
int num=12345;
FILE *fp=fopen( "datafile", "wb" );
fwrite( &num, sizeof(int), 1, fp ); //将num数据写入文件
....
FILE *fp=fopen( "datafile", "rb" );
fread( &num, sizeof(int), 1, fp ); //读文件数据到num中
字符方式存取
字符方式是将数据的可见内容,以字符形式存储到文件中,可以在任何机器上阅读并读取,方便不同系统间的数据传递。
这种方式,采用的存取函数相应为:fprintf()和fscanf().
如:
int num=0;
FILE *fp=fopen( "datafile", "w" );
fprintf(fp, "%d\n", num ); //将num数据写入文件
....
FILE *fp=fopen( "datafile", "r" );
fscanf(fp,"%d", &num ); //读文件数据到num中