关于#file#的问题,如何解决?

img


运行结果是“can't open file!”想知道哪里不对呢?下面是我的代码:


#include<stdio.h>
#include<stdlib.h>
#define N 100
int main()
{
    FILE* fp1, * fp2;
    errno_t err;
    if ((err = fopen_s(&fp1, "in.txt", "w")) == NULL)
    {
        printf("can't open file!\n");
        exit(0);
    }
    int a[N], i = 0, count = 0, sum = 0, sum1;
    while (scanf_s("%d", &a[i]) == 1)
    {
        i++;
        count++;
    }
    for (i = 0; i < count; i++)
        fprintf(fp1, "%d", a[i]);
    fclose(fp1);
    err = fopen_s(&fp1, "in.txt", "r");
    for (i = 0; i < count; i++)
    {
        fscanf_s(fp1, "%d", &a[i]);
        sum += a[i];
    }
    fclose(fp1);
    if ((err = fopen_s(&fp2, "in.txt", "w")) == NULL)
    {
        printf("can't open file!\n");
        exit(0);
    }
    fprintf(fp2, "%d", sum);
    fclose(fp2);
    err = fopen_s(&fp2, "out.txt", "r");
    fscanf_s(fp2, "%d", &sum1);
    printf("%d", sum1);
    return 0;
}

只是调试了一下代码问题,但是运行结果还是不符合我就没看了,后面的逻辑可以自己梳理。

img


#include<stdio.h>
#include<stdlib.h>
#define N 100
int main()
{
    FILE* fp1, * fp2;
    errno_t err;
    if ((err = fopen_s(&fp1, "in.txt", "w")) != 0)
    {
        printf("can't open file!\n");
        exit(0);
    }
    int a[N] = {0}, i = 0, count = 0, sum = 0, sum1;
    int aa = 0;
    while(aa !=5)
    //while (scanf_s("%d", &a[i]) == 1) 这里是什么逻辑
    {
        scanf_s("%d", &a[i]);
        i++;
        count++;
        aa++;
    }
    for (i = 0; i < count; i++)
        fprintf(fp1, "%d", a[i]);
    fclose(fp1);
    err = fopen_s(&fp1, "in.txt", "r");
    if (err != 0)
    {
        return -1;
    }
    for (i = 0; i < count; i++)
    {
        fscanf_s(fp1, "%d", &a[i]);
        sum += a[i];
    }
    fclose(fp1);
    if ((err = fopen_s(&fp2, "in.txt", "w")) != 0)
    {
        printf("can't open file!\n");
        exit(0);
    }
    fprintf(fp2, "%d", sum);
    fclose(fp2);
    err = fopen_s(&fp2, "out.txt", "r");
    if (err != 0)
    {
        return -1;
    }
    fscanf_s(fp2, "%d", &sum1);
    printf("%d", sum1);
    return 0;
}