fgets()使我的程序崩溃

Jua*_*ias 0 c fgets

我是C编程的新手。我正在尝试打开一个文件(juanjo2.klb),该文件是我使用同一程序创建的二进制文件,我将在此处显示。事情是,我正在尝试使用fprintf()函数将字符串打印到文件,然后使用fgets()将字符串写入“ cad”字符串,并使用函数printf()打印到屏幕上我从文件中读取的字符串。

当我运行该程序时,该程序崩溃了,Windows(Windows 7)给我一个消息框,提示我的程序停止工作并且正在寻找问题的解决方案。所以我真的不知道我在做什么错,因为我认为我正确地使用了这些功能。我需要你的帮助。这是源代码:

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

#define MAXCHARS 20

int main()
{
    char cad[MAXCHARS];
    FILE *pf;
    char *nombre = "\\juanjo2.klb";
    if(pf = fopen(nombre, "a+b") == NULL)
    {
       printf("Error opening file\n");
       exit(-1);
    }

    fprintf(pf, "%s", "Hola como estas");

    while(feof(pf) == 0)
    {
        fgets(cad, 13, pf);
        printf("%s", cad);//Here I print the string to the screen.
    }

    fclose(pf); //Closing file.

    system("PAUSE");
    return 0;
Run Code Online (Sandbox Code Playgroud)

}

我正在使用Codeblocks IDE 10.05。谢谢你的帮助。

wil*_*ser 5

if((pf = fopen(nombre, "a+b")) == NULL)
Run Code Online (Sandbox Code Playgroud)

那是经典。