A program can format a result into a file and then read that result back for verification.

formatted output `fprintf` writes formatted text to the file stream.
read back Reading the output back confirms the formatted result.

Write Output

width
write_output.c
Replay: real traced execution (multi-file project)
#include <stdio.h>

int main(void) {
    int width = 4;
    int height = 5;
    int area = width * height;
    FILE *file = fopen("write_output_demo.txt", "w+");

    if (file == 0) {
        return 1;
    }

    fprintf(file, "area=%d\n", area);
    rewind(file);

    char label[8];
    int read = 0;
    fscanf(file, "%7[^=]=%d", label, &read);

    fclose(file);
    remove("write_output_demo.txt");

    printf("area=%d\n", read);
    return 0;
}
#include <stdio.h>

int main(void) {
    int width = 6;
    int height = 5;
    int area = width * height;
    FILE *file = fopen("write_output_demo.txt", "w+");

    if (file == 0) {
        return 1;
    }

    fprintf(file, "area=%d\n", area);
    rewind(file);

    char label[8];
    int read = 0;
    fscanf(file, "%7[^=]=%d", label, &read);

    fclose(file);
    remove("write_output_demo.txt");

    printf("area=%d\n", read);
    return 0;
}
#include <stdio.h>

int main(void) {
    int width = 8;
    int height = 5;
    int area = width * height;
    FILE *file = fopen("write_output_demo.txt", "w+");

    if (file == 0) {
        return 1;
    }

    fprintf(file, "area=%d\n", area);
    rewind(file);

    char label[8];
    int read = 0;
    fscanf(file, "%7[^=]=%d", label, &read);

    fclose(file);
    remove("write_output_demo.txt");

    printf("area=%d\n", read);
    return 0;
}
  1. width ← 4, height ← 5, area ← 20, file ← ⟨addr A⟩, label ← (empty)

    3int main(void) {4    int width→ 4 = 4; //@width=6, 85    int height→ 5 = 5;6    int area→ 20 = width4 * height5;7    FILE *file→ ⟨addr A⟩ = fopen("write_output_demo.txt", "w+");89    if (file == 0) {10        return 1;11    }1213    fprintf(file⟨addr A⟩, "area=%d\n", area20);14    rewind(file⟨addr A⟩);1516    char label→ (empty)[8];17    int read→ 0 = 0;18    fscanf(file⟨addr A⟩, "%7[^=]=%d", label→ area, &read→ 20);1920    fclose(file⟨addr A⟩);21    remove("write_output_demo.txt");2223    printf("area=%d\n", read20);24    return 0;25}
    outputarea=20
  1. width ← 6, height ← 5, area ← 30, file ← ⟨addr A⟩, label ← (empty)

    3int main(void) {4    int width→ 6 = 6;5    int height→ 5 = 5;6    int area→ 30 = width6 * height5;7    FILE *file→ ⟨addr A⟩ = fopen("write_output_demo.txt", "w+");89    if (file == 0) {10        return 1;11    }1213    fprintf(file⟨addr A⟩, "area=%d\n", area30);14    rewind(file⟨addr A⟩);1516    char label→ (empty)[8];17    int read→ 0 = 0;18    fscanf(file⟨addr A⟩, "%7[^=]=%d", label→ area, &read→ 30);1920    fclose(file⟨addr A⟩);21    remove("write_output_demo.txt");2223    printf("area=%d\n", read30);24    return 0;25}
    outputarea=30
  1. width ← 8, height ← 5, area ← 40, file ← ⟨addr A⟩, label ← (empty)

    3int main(void) {4    int width→ 8 = 8;5    int height→ 5 = 5;6    int area→ 40 = width8 * height5;7    FILE *file→ ⟨addr A⟩ = fopen("write_output_demo.txt", "w+");89    if (file == 0) {10        return 1;11    }1213    fprintf(file⟨addr A⟩, "area=%d\n", area40);14    rewind(file⟨addr A⟩);1516    char label→ (empty)[8];17    int read→ 0 = 0;18    fscanf(file⟨addr A⟩, "%7[^=]=%d", label→ area, &read→ 40);1920    fclose(file⟨addr A⟩);21    remove("write_output_demo.txt");2223    printf("area=%d\n", read40);24    return 0;25}
    outputarea=40