2017-03-02 55 views
0
#include <time.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <conio.h> 

int main() 
{ 
    FILE *fp; 
    int r, i; 

    char fp_string [600] = "num1000.bin"; 

    fp = fopen(fp_string, "rb"); 

    for (i=0;i<1000;i++) 
    { 
     fread(&r, sizeof(int), 1, fp); 
     printf("%d, ", r); 
    } 

    fclose(fp); 
    getch(); 
    return 0; 
} 

此代码当前读取并显示称为num1000.bin的二进制文件,其中包含1000张随机数。该代码使用for循环。我如何执行完全相同的任务,而是使用数组?使用数组读取和显示二进制文件

+1

您正在使用数组。 fp_string是一个数组。 – VHS

+0

你想要什么?目前还不清楚你在问什么。你想使用一个数组而不是文件,但如果是这样的话,你想要包含bin文件吗?更确切地说...... – xMRi

回答

1

定义数组:

int r[1000]; 

来读取文件1000个文件,用fread

fread(r, sizeof(int), 1000, fp); 

正如你可以在fread功能的描述看它的参数,一个指定要读取的元素数量。将其从1更改为1000.


要显示您的数字,您仍然需要循环。

for (i=0;i<1000;i++) 
{ 
    printf("%d, ", r[i]); 
} 

注意它现在r[i] - 因为r现在是一个包含1000个号码的阵列,而不是一个。

1

首先你需要知道随机数的格式。据推测他们是在本地INT格式,但你需要检查,特别是因为他们是rnadom,所以没有常识测试是可能的。

如果你知道这个数字正好是1000,你可以使用的fread

int r[1000]; 
fread(r, sizeof(int), 1000, fp); 

阅读但这是一个坏习惯。数据可能会提前结束。格式可能是从本地翻译的,也可能是16或64位,而不是32位。您确实需要养成轻松读取二进制数据的习惯。

相关问题