---
# System prepended metadata

title: 1B-13
tags: [一上程設]

---

# 1B-13
###### tags: `一上程設`
### eg1
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    FILE *fp;
    int prn, i;
    fp = fopen("txtfile.txt", "w");

    if(fp == NULL)
    {
        printf("File open error.\n");
        exit(EXIT_FAILURE);
    }

    srand(time(NULL));

    printf("Filling the file with pseudorandom numbers ... \n\n");
    for(i = 0; i < 10; i++)
    {
        prn = rand() % 20;
        fprintf(fp, "%d ", prn);
    }

    printf("Retrieved data from txtfile.txt ...\n");
    rewind(fp);
    fp = fopen("txtfile.txt", "r");

    for(i = 0; i < 10; i++)
    {
        fscanf(fp, "%d", &prn);
        printf("%d ", prn);
    }
    printf("\n\n");
    fclose(fp);
    return 0;
}

```
### eg1.1
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    FILE *fp;
    int i;
    double prn;
    fp = fopen("txtfile.txt", "w");

    if(fp == NULL)
    {
        printf("File open error.\n");
        exit(EXIT_FAILURE);
    }

    srand(time(NULL));
    rand();
    printf("Filling the file with pseudorandom numbers ... \n\n");
    for(i = 0; i < 10; i++)
    {
        prn = 1.0 / (RAND_MAX + 1.0) * rand();
        fprintf(fp, "%f ", prn);
    }

    printf("Retrieved data from txtfile.txt ...\n");
    rewind(fp);
    fp = fopen("txtfile.txt", "r");

    for(i = 0; i < 10; i++)
    {
        fscanf(fp, "%lf", &prn);
        printf("%f ", prn);
    }
    printf("\n\n");
    fclose(fp);
    return 0;
}
```
### eg2
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    FILE *fp;
    int prn, i;
    fp = fopen("binFile.dat", "w+b");

    if(fp == NULL)
    {
        printf("File open error.\n");
        exit(EXIT_FAILURE);
    }

    srand(time(NULL));

    printf("Filling the file with pseudorandom numbers ... \n\n");
    for(i = 0; i < 10; i++)
    {
        prn = rand() % 20;
        fwrite(&prn, sizeof(int), 1,fp);
    }

    printf("Retrieved data from binFile.dat ...\n");
    rewind(fp);

    for(i = 0; i < 10; i++)
    {
        fread(&prn, sizeof(int), 1, fp);
        printf("%d ", prn);
    }
    printf("\n\n");
    fclose(fp);
    return 0;
}

```
### Practice 2.
```
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;
    int prn, i;
    int a[5] = {0, 1, 2, 3, 4}, b[5];
    fp = fopen("binFile.dat", "wb");

    if(fp == NULL)
    {
        printf("File open error.\n");
        exit(EXIT_FAILURE);
    }

    fwrite(a, sizeof(int), 5,fp);

    printf("Retrieved data from binFile.dat ...\n");

    rewind(fp);
    fp = fopen("binFile.dat", "rb");

    fread(b, sizeof(int), 5, fp);
    for(i = 0; i < 5; i++)
        printf("%d ", b[i]);

    printf("\n\n");
    fclose(fp);
    return 0;
}

```
### EXTRA
```
#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;
    int prn, i, q;
    int a[5] = {0, 1, 2, 3, 4}, b[5];
    fp = fopen("binFile.dat", "w+b");

    if(fp == NULL)
    {
        printf("File open error.\n");
        exit(EXIT_FAILURE);
    }

    fwrite(a, sizeof(int), 5,fp);
    rewind(fp);

    fread(b, sizeof(int), 5, fp);
    rewind(fp);
    printf("顯示第幾個元素:");
    scanf("%d", &q);
    if(fseek(fp, q * sizeof(int), SEEK_SET) == 0)
    {
        printf("the index you enter is %d", b[q]);
    }

    printf("\n\n");
    fclose(fp);
    return 0;
}

```