c语言对文件的写入为什么不成功

为什么会出现这样的问题啊,搞不懂了。

img

img


具体代码如下:

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

int main() {
    FILE *fp1;
    int err;
    char ch, filename[10];
    printf("请输入文件名:");
    scanf_s("%s", filename,10);
    getchar();
    if ((err= fopen_s(&fp1,filename, "w")) == 0) {
        printf("cannot open file\n");
        exit(0);
    }
    printf("请输入要写入的字符串:");
    ch = getchar();
    while (ch != '#') {
        fputc(ch, fp1);
        putchar(ch);
        ch = getchar();
    }
    fclose(fp1);
    putchar(10);
    return 0;
}

修改处见注释,供参考:

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

int main() {
    FILE *fp1;
    int  err;
    char ch, filename[10];
    printf("请输入文件名:");
    scanf_s("%s", filename,10);
    //getchar();   修改
    if ((err = fopen_s(&fp1,filename, "w")) != 0) {
    //if ((err= fopen_s(&fp1,filename, "w")) == 0) 修改
        printf("cannot open file\n");
        exit(0);
    }
    printf("请输入要写入的字符串:");
    //ch = getchar();  修改
    while ((ch = getchar())!= '#') { // 修改
        fputc(ch, fp1);
        putchar(ch);
        //ch = getchar(); 修改
    }
    fclose(fp1);
    putchar(10);

    return 0;
}

文件的打开还没写
fopen_s只是检验是否打开

解决啦,多谢