关于#c语言#的问题:在visual studio用fprintf一直报错

在visual studio用fprintf一直报错
就是把素数写到文件里,用fprintf就一直报错,不知道为什么。

img

int main()
{
    int n = 2, count = 0;
    FILE* fp;

    if ((fp = fopen_s(&fp,"D:\c_learn\text_6\prime.txt", "w")) == NULL) {
        printf("flile open error!\n");
        exit(0);
    }

    while (count < 500) {
        if (prime(n) != 0) {
            count++;
            fprintf(fp,"%d", n);
        }
        n++;
    }

    if (fclose(fp)) {
        printf("can not close the file!\n");
        exit(0);
    }
    return 0;

在使用 fopen_s 函数时,第一个参数应该是指向 FILE * 类型的指针,用于接收打开的文件流,而你的代码中将第一个参数也设置为了 &fp,导致了错误。应该将 &fp 改为 &f,即:

if ((fopen_s(&f, "D:\\c_learn\\text_6\\prime.txt", "w")) != 0) {
    printf("file open error!\n");
    exit(0);
}

此外,你还需要在文件路径中将反斜杠 \ 转义为 \,或者直接使用正斜杠 /,以免被解析为转义字符。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^